2013-07-05 24 views
2

的形式顯示從數據庫中獲取的數據?//首先我發送執行sql查詢的php代碼,此代碼執行查詢以從數據庫中獲取數據並將所有數據存儲在get_row1並且將其作爲對AJAX $如何以

<?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回Ajax代碼$

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

我可以看到你正在使用'$'在for循環中假設其化名爲'jQuery'爲什麼不使用'$阿賈克斯()'? – GoodSp33d

+0

什麼是tmp數組?你提到溫度,但你也有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