2015-01-25 2 views
0

В настоящее время я пытаюсь запросить базу данных с помощью Ajax. Мой Ajax выглядит следующим образомajax sql и база данных запросов PHP и результат возврата

function ajaxFunction(){ 
    var ajaxRequest; // The variable that makes Ajax possible! 

    try{ 
     // Opera 8.0+, Firefox, Safari 
     ajaxRequest = new XMLHttpRequest(); 
    } catch (e){ 
     // Internet Explorer Browsers 
     try{ 
      ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
      try{ 
       ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (e){ 
       // Something went wrong 
       alert("Not working"); 
       return false; 
      } 
     } 
    } 
    // Create a function that will receive data sent from the server 
    ajaxRequest.onreadystatechange = function(){ 
     if(ajaxRequest.readyState == 4){ 
      document.returnhere.value = ajaxRequest.responseText; 
     } 
    } 
    var datepicker = document.getElementById('datepicker').value; 
    var datepicker1 = document.getElementById('datepicker1').value; 
    var queryString = "?datepicker=" + datepicker + "&datepicker1=" + datepicker1; 
    ajaxRequest.open("GET", "detengde.php" + queryString, true); 
    ajaxRequest.send(null); 
} 

//--> 
</script> 



<form name='myForm'> 
From: <input id='datepicker' /> <br /> 
To: <input id='datepicker1' /> 
<br /> 
    <input type='button' onclick='ajaxFunction()' value='Query MySQL' /> 
</form> 
<div id=returnhere></div> 

Мой PHP выглядит следующим образом:

include 'config.php' 
$startd = ($_GET['datepicker']); 
$endd = ($_GET['datepicker1']); 


$sql = "SELECT * FROM delays WHERE Delaytype >= date('".$startd."') AND Delaydate < ADDATE(date('".$endd."'), INTERVAL 1 DAY)"; 


$result = mysqli_query($con,$sql); 

while($row = mysqli_fetch_array($result)) { 

do something . .. .. . . 

Этот запрос работает с PHP на его одной и возвращать записи, которые лежат между двумя диапазонами дат.

Im изо всех сил пытается получить выход php обратно на мою страницу. Честно говоря, когда я нажимаю кнопку, очень мало происходит. Я удобен с взаимодействием с базами данных PHP. AJAX - это то, что я только начинаю изучать.

Пожалуйста, не сообщайте о безопасности. Я знаю, что это очень опасно.

Есть что-то очень фундаментальное, я здесь отсутствует. После многих учебных уроков поиск в сложном переполнении его просто не нажал (не каламбур)

+0

'Im изо всех сил, чтобы верните php-выход на мою страницу ». Вы хотите, чтобы вы просто вернули результат на свою страницу или хотите упорядочить данные в формате 'json'? –

+0

Чтобы быть честным, оба решения были бы полезны, поскольку некоторые из них будут отражать другие данные, которые я хотел бы получить в JSON. Я предполагаю, что я задаю тип данных в AJAX и json_encode PHP, но не знаком с этим методом. Я обновил код, там был div, называемый return здесь, который не был отформатирован правильно – Creaven

ответ

0

Добавить поле с именем "returnhere" на HTML-страницу.

<input type="text" name="returnhere"> 

Если я правильно прочитал ваш код, обратный вызов для функции ajax должен заполнить его значение.

+0

. Привет, пожалуйста, см. Исправленный вопрос был там, но не отформатирован как код. Его div называется returnhere. Когда я обращаюсь к элементу неправильно – Creaven

0
<?php 
include 'config.php'; 
header('Content-Type: application/json; charset="utf-8"'); 
$startd = ($_GET['datepicker']); 
$endd = ($_GET['datepicker1']); 

$sql = "SELECT * FROM delays WHERE Delaytype >= date('".$startd."') AND Delaydate < ADDATE(date('".$endd."'), INTERVAL 1 DAY)"; 


$result = mysqli_query($con,$sql); 

//just an empty array here 

$final_array=array(); 

while($row = mysqli_fetch_array($result)) { 

// I am not aware of what is being returned. So I am going to assume its a 'value' 
// you can just store the values returned, in an array and echo the array or 
// json_encode($array) and echo that 

// this will just echo the value for time the loop encounters this statement 
echo $row['value']; 

//push the element into the array.Beware of overhead caused by array_push() 
//if it is a `key-value` pair, its better just to use $final_array[$key] = $value; 

array_push($final_array,$row['value']); 

} 
// Don't forget to set the header before echoing the json 
echo json_encode($final_array); 
?> 

Надеюсь, это поможет в некоторой степени. Или, если вам нужно сведения, не стесняйтесь комментировать ниже

В вашем JS Используйте

document.getElementById("returnhere").value=object.responseText;

или

document.getElementById("returnhere").innerHTML=object.responseText;

, который когда-либо удовлетворяет ваши потребности

Смежные вопросы