Javascript 无法通过jQuery访问AJAX响应数据

Javascript 无法通过jQuery访问AJAX响应数据,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我已经搜索和尝试了几个小时,但没有成功 我有一个现有页面,它在HTML表中使用PHP显示来自DB的简单数据。现在我想实现AJAX功能,以便在不刷新页面的情况下刷新数据 据我所知,我已经实现了AJAX调用部分,并且按照预期刷新了值。但是我被困在获取价值观上 index.php(主页) 输出: $(函数(){ 更新内容(); }); 函数更新_内容() { $.ajax({ url:'query.php',//调用以获取数据的脚本 数据:“”,//您可以在此处插入url argumnets以传递给

我已经搜索和尝试了几个小时,但没有成功

我有一个现有页面,它在HTML表中使用PHP显示来自DB的简单数据。现在我想实现AJAX功能,以便在不刷新页面的情况下刷新数据

据我所知,我已经实现了AJAX调用部分,并且按照预期刷新了值。但是我被困在获取价值观上

index.php(主页)


输出:
$(函数(){
更新内容();
});
函数更新_内容()
{
$.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@FahadKhan
data[“symbol”]
不起作用,因为数据不是对象<代码>数据。符号
什么都不是<代码>数据
是具有符号属性的对象数组。您需要通过首先访问数组中的每个对象来访问symbol:
数据[0]。symbol
数据[1]。symbol
,这里有一个我找到的快速教程供您阅读:您的案例是有趣的部分提示:您的响应是一个对象数组而不是一个对象。您正在传递选项
dataType:'json'
,然后在ajax的
success
选项中,您应该使用响应(此处的数据)作为对象。但是您将其视为字符串。
if(data){(data+'..length;}
-doesnothing@FahadKhan
data[“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>"
        );
      }
    }
});