Javascript 无法通过jQuery访问AJAX响应数据
我已经搜索和尝试了几个小时,但没有成功 我有一个现有页面,它在HTML表中使用PHP显示来自DB的简单数据。现在我想实现AJAX功能,以便在不刷新页面的情况下刷新数据 据我所知,我已经实现了AJAX调用部分,并且按照预期刷新了值。但是我被困在获取价值观上 index.php(主页)Javascript 无法通过jQuery访问AJAX响应数据,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我已经搜索和尝试了几个小时,但没有成功 我有一个现有页面,它在HTML表中使用PHP显示来自DB的简单数据。现在我想实现AJAX功能,以便在不刷新页面的情况下刷新数据 据我所知,我已经实现了AJAX调用部分,并且按照预期刷新了值。但是我被困在获取价值观上 index.php(主页) 输出: $(函数(){ 更新内容(); }); 函数更新_内容() { $.ajax({ url:'query.php',//调用以获取数据的脚本 数据:“”,//您可以在此处插入url argumnets以传递给
输出:
$(函数(){
更新内容();
});
函数更新_内容()
{
$.ajax({
url:'query.php',//调用以获取数据的脚本
数据:“”,//您可以在此处插入url argumnets以传递给query.php
数据类型:“json”,//数据格式
成功:函数(数据)//收到回复时
{
如果(数据){
(数据+“”)。长度;
}
var temp=新数组();
$('#output').html(“+data[“symbol”]+”);
}
});
setTimeout(函数(){
更新内容();
}, 1000);
}
php(用于AJAX调用)
如果我直接在浏览器中运行query.php,我会看到以下格式的所有数据:[{“LastUpdated”:“20170614”,“symbol”:“AUD”,“sum”:“20”},{“LastUpdated”:“20170614”,“symbol”:“AUD”,“sum”:“10”}
但是在我的主页上,我看到了未定义的。
理想情况下,我希望所有的值(在上面的代码中使用JS循环)都能显示从DB(变量记录数)中获取的所有记录
提示/修改
当我改变时:
$('#output').html(“+data[“symbol”]+”)代码>
到
$('#output').html(“+data[0]+”)代码>
在index.php中
及
$table_data[]=数组(“上次更新”=>$row[0],“symbol”=>$row[1],“sum”=>$row[2])代码>
到
$table_data[]=$row代码>
在query.php中,
然后我只得到第一行字符串,如
20170614,澳大利亚,40
。
结束提示/修改
如果这是一个愚蠢的问题,我很抱歉。我是jQuery新手,第一次尝试AJAX
另外,我知道mysql_*函数已被弃用,并且我知道该漏洞
非常感谢您的帮助。您必须按以下所述更改代码
从
到
如果不起作用,请告诉我。您必须按照下面提到的方式更改代码
从
到
如果不起作用,请告诉我。当您更新数据表时,您可能只需要重新生成表。在回调函数中,需要循环遍历数组并向表中添加新行
$.ajax({
url: 'query.php', //the script to call to get data
dataType: 'json', //data format
success: function(data) {
if (!Array.isArray(data) || !data.length) {
return;
}
$("#output").empty(); //clear old table data
for(var i = 0, len = data.length; i < len; i++) {
$("#output").append(
"<tr><td>" + data[i].LastUpdated + "</td>" +
"<td>" + data[i].symbol + "</td></tr>" +
"<td>" + data[i].sum + "</td></tr>"
);
}
}
});
$.ajax({
url:'query.php',//调用以获取数据的脚本
数据类型:“json”,//数据格式
成功:功能(数据){
if(!Array.isArray(data)| |!data.length){
返回;
}
$(“#输出”).empty();//清除旧表数据
对于(变量i=0,len=data.length;i
当您更新数据表时,您可能只想重新生成该表。在回调函数中,需要循环遍历数组并向表中添加新行
$.ajax({
url: 'query.php', //the script to call to get data
dataType: 'json', //data format
success: function(data) {
if (!Array.isArray(data) || !data.length) {
return;
}
$("#output").empty(); //clear old table data
for(var i = 0, len = data.length; i < len; i++) {
$("#output").append(
"<tr><td>" + data[i].LastUpdated + "</td>" +
"<td>" + data[i].symbol + "</td></tr>" +
"<td>" + data[i].sum + "</td></tr>"
);
}
}
});
$.ajax({
url:'query.php',//调用以获取数据的脚本
数据类型:“json”,//数据格式
成功:功能(数据){
if(!Array.isArray(data)| |!data.length){
返回;
}
$(“#输出”).empty();//清除旧表数据
对于(变量i=0,len=data.length;i
提示:您的响应是一个对象数组,而不是一个对象。您正在传递选项dataType:'json'
,然后在ajax的success
选项中,您应该使用响应(此处的数据)作为对象。但是您将其视为字符串。if(data){(data+'..length;}
-doesnothing@FahadKhandata[“symbol”]
不起作用,因为数据不是对象<代码>数据。符号
什么都不是<代码>数据
是具有符号属性的对象数组。您需要通过首先访问数组中的每个对象来访问symbol:数据[0]。symbol
,数据[1]。symbol
,这里有一个我找到的快速教程供您阅读:您的案例是有趣的部分提示:您的响应是一个对象数组而不是一个对象。您正在传递选项dataType:'json'
,然后在ajax的success
选项中,您应该使用响应(此处的数据)作为对象。但是您将其视为字符串。if(data){(data+'..length;}
-doesnothing@FahadKhandata[“symbol”]
不起作用,因为数据不是对象<代码>数据。符号
什么都不是<代码>数据
是具有符号属性的对象数组。您需要通过首先访问数组中的每个对象来访问symbol:数据[0]。symbol
,数据[1]。symbol
,等等。这里有一个快速教程供您阅读:您的案例是JavaScript中的有趣部分。而数据
是一个数组而不是一个对象。而数据
是一个数组而不是一个对象。这非常有效。最后一件事是,当我这样写的时候,它在一行中显示所有内容:for(var I=0,len=data.length;Idata["symbol"]
data.symbol
$.ajax({
url: 'query.php', //the script to call to get data
dataType: 'json', //data format
success: function(data) {
if (!Array.isArray(data) || !data.length) {
return;
}
$("#output").empty(); //clear old table data
for(var i = 0, len = data.length; i < len; i++) {
$("#output").append(
"<tr><td>" + data[i].LastUpdated + "</td>" +
"<td>" + data[i].symbol + "</td></tr>" +
"<td>" + data[i].sum + "</td></tr>"
);
}
}
});