我有一個腳本,它使用AJAX連接到PHP腳本,該腳本查詢數據庫並返回一些值。其代碼如下:通過JSON AJAX回覆PHP
<script>
function showUser(str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
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)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajaxphp.php?ID="+str,true);
xmlhttp.send();
}
</script>
<select id="users" name="users" onchange="showUser(this.value)">
<option value="">Select a person:</option>
<!-- PHP populates this dropdown box -->
</select>
<div id="txtHint"><b>Selected user info will be listed here.</b></div>
現在txtHint div將返回任何ajaxphp.php腳本打印的內容。然而這不是很靈活。我想要做的是在ajaxphp.php中創建一個數組,然後使用json_encode()將結果傳遞回去。
我遇到的問題是我不知道如何獲得原始腳本來獲取結果,以便我可以對它們做有用的事情。現在我可以讓它返回一個JSON數組,它將出現在txtHint div中,但我不知道如何讓PHP實際讀取這些信息,以便我可以用它做些事情。
如果你能讓你的PHP返回一個JSON數組,那麼這是你的javascript函數需要改變,而不是php。而不是'document.getElementById(「txtHint」)。innerHTML = xmlhttp.responseText;',你將得到你的代碼來解析這個數組並且做一些有用的事情。 – 2013-04-22 08:28:13
關於另一個話題,我建議你看一下現有的圖書館,例如jQuery,它負責爲您處理很多事情,包括處理瀏覽器差異並將響應解析回javascript數組。 – 2013-04-22 08:28:56