我已經搜索並嘗試了幾個小時但未成功。無法通過jQuery訪問AJAX響應數據
我有一個現有的頁面,它使用PHP在HTML表格中顯示來自數據庫的簡單數據。現在我想實現AJAX功能,以便在不刷新頁面的情況下刷新數據。
我已經實現了this solution,據我的理解,AJAX調用部分正在工作,並且按照預期刷新值。但我堅持獲取價值觀。
的index.php(主頁)
<html>
<head>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js">
</script>
</head>
<body>
<h3>Output: </h3>
<table border="1" id="output"></table>
<script id="source" language="javascript" type="text/javascript">
$(function() {
update_content();
});
function update_content()
{
$.ajax({
url: 'query.php', //the script to call to get data
data: "", //you can insert url argumnets here to pass to query.php
dataType: 'json', //data format
success: function(data) //on recieve of reply
{
if(data){
(data + '').length;
}
var temp = new Array();
$('#output').html("<tr><td>"+data["symbol"]+"</td></tr>");
}
});
setTimeout(function(){
update_content();
}, 1000);
}
</script>
</body>
</html>
query.php(用於AJAX調用)
<?php
include('inc/connection.php');
# Main query
$sql = "
select LastUpdated, symbol, sum
from TheTable
";
$result = mysql_query($sql);
while($row = mysql_fetch_row($result)){
$table_data[]=array("LastUpdated"=>$row[0],"symbol"=>$row[1],"sum"=>$row[2]);
}
echo json_encode($table_data);
?>
如果我在瀏覽器中運行query.php直接,我看到所有數據在此格式中:[{"LastUpdated":"20170614","symbol":"AUD","sum":"20"},{"LastUpdated":"20170614","symbol":"AUD","sum":"10"}]
但是在我的主頁上,我在表格內看到undefined
。 理想情況下,我希望擁有所有值(在上面的代碼中使用JS循環),以顯示從DB中獲取的所有記錄(記錄的變量編號)。
提示/修改
當我改變: $('#output').html("<tr><td>"+data["symbol"]+"</td></tr>");
到 $('#output').html("<tr><td>"+data[0]+"</td></tr>");
的index.php中
和
$table_data[]=array("LastUpdated"=>$row[0],"symbol"=>$row[1],"sum"=>$row[2]);
到 $table_data[]=$row;
在query.php,
然後我得到只有第一行像一個字符串,如 20170614,AUD,40
。
END提示/修改
我很抱歉,如果這是一個愚蠢的問題/問題。我是jQuery的新手,並且第一次嘗試AJAX。
P.S.我知道mysql_ *函數已被棄用,我知道這個漏洞。
您的幫助將不勝感激。
提示:你的響應是一個對象數組不是一個對象。 – Mikey
您正在傳遞'dataType:'json''選項,然後在ajax的'success'選項中,您應該使用響應(此處爲數據)作爲對象。但是你把它當作一個字符串來對待。 –
如果(數據){數據+'').length; }' - 什麼都不做 –