2013-07-05 5 views
2

$ // Сначала я отправляю PHP-код, который выполняет sql-запрос, этот код выполняет запрос, чтобы получить данные из базы данных и сохраняет все данные в get_row1 и отправляет его в ответ на Аякса $Как отобразить данные, полученные из базы данных в форме

<?php 
    $connect = mysql_connect("localhost", "root", ""); 
    $data = mysql_select_db("testme", $connect); 
    $identity = $_REQUEST['id']; 

    $query = "SELECT * FROM student_demo WHERE id=1"; 
    $getdata = mysql_query($query); 

    $get_row1 = mysql_fetch_array($getdata); 

    $data1 = array(
      $get_row1[0], 
     $get_row1[1], 
     $get_row1[2], 
     $get_row1[3] 
    ); 
    print_r($data1); 
?> 

$ // Это посылает $ data1 обратно в код АЯКС $

if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp = new XMLHttpRequest(); 
} else { // code for IE6, IE5 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
} 

xmlhttp.onreadystatechange = function() { 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
     alert(xmlhttp.responseText); 
     temp1 = xmlhttp.responseText.split("=>"); 
     alert(temp1); 
     for (var i = 0; i < 10; i++) { 
     $('.data' + i).val(tmp1[i]); 
      if (tmp[i] == "[0]") { 
       document.getelementById("c_name").value = temp1[i]; 
      } 
     } 
    } 
} 

xmlhttp.open("GET", "process.php?id=" + ID, true); 
xmlhttp.send(); 

Теперь, какие изменения я должен сделать, чтобы получить значения из массив temp1 для отображения в текстовом поле $

+1

Я вижу, что вы используете '' $ в цикл предполагая, что его псевдоним 'jQuery' почему бы не использовать' $ .ajax() '? – GoodSp33d

+0

Что такое массив tmp? Вы указываете temp, но у вас также есть tmp. – 3ventic

+0

Вы спрашиваете, как правильно разобрать ответ от ajax? Другими словами, как преобразовать его в JS-массив? –

ответ

1

В коде PHP, вы должны лучше ответ закодировать в формате JSON:

data1=array($get_row1[0], 
     $get_row1[1], 
     $get_row1[2], 
     $get_row1[3]); 

json_encode($data1); 

И затем, в JS код, вы можете разобрать строку ответа с помощью JSON.parse:

if (xmlhttp.readyState==4 && xmlhttp.status==200) 
{ 
    alert(xmlhttp.responseText); 
    temp1=JSON.parse(xmlhttp.responseText); 
    console.log(temp1); // this way you can see exact structure of an object in browser console 
    var i; 
    for(i=0;i<10;i++) 
    { 
     $('.data'+i).val(tmp1[i]); // not sure what is that. If you are already using jQuery, then you can do everything even simpler 
     if(tmp[i]=="[0]") 
     { 
      document.getElementById("c_name").value=temp1[i]; // see here getElementById - javascript is case sensitive 
     } 
    } 

} 

Примечание: JSON.parse доступен в только современные браузеры. В IE7, например, из-за этого вы получите ошибку. Чтобы устранить эту проблему, вы можете загрузить this небольшой фрагмент JavaScript.

Для решения JQuery посмотрите here

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