【问题标题】:Parsing MySQL JSON results in Jquery在 Jquery 中解析 MySQL JSON 结果
【发布时间】:2013-12-22 02:36:09
【问题描述】:

我正在尝试将 MySQL 数据库中的一些 JSON 结果解析为一个简单的 HTML 表。目前,我可以正确返回原始 JSON 字符串 data。但是,当我尝试将这些结果解析为 HTML 表格时,我会返回“未定义”。

JS 文件:

$('input#name-submit').on('click', function() {
var name = $('input#name').val();
if ($.trim(name) != '') {
$.post('ajax/name.php', {name: name}, function(data) {
 var tr;
    for (var i = 0; i < data.length; i++) {
        tr = $('<tr/>');
        tr.append("<td>" + data[i].ARTIST + "</td>");
        tr.append("<td>" + data[i].LOCATION + "</td>");
        $('table').append(tr);
        }
});
}

});

来自 HTML 文件的表格:

<table>
<tr>
    <th>ARTIST</th>
    <th>LOCATION</th>
</tr>
</table>

已编辑:

JSON 结果,在我的索引文件中作为“未定义”返回

{"ARTIST":"Katy Perry","LOCATION":"United States"}

【问题讨论】:

  • 关于 HTML 表格...第一部分应包含在 元素而不是 中。然后, 为内容。
  • 离题,但这对你来说可能很有趣:handlebarsjs.com

标签: jquery mysql json


【解决方案1】:

jQuery 智能地根据很多因素确定 ajax 请求的返回类型。在这种情况下,我几乎可以肯定 data 已经被解析了。如果您删除 sentdata 行并改用 data,您的代码应该可以按预期工作。

dataType property for ajax for jQuery

【讨论】:

  • 啊,是的,我认为这条线可能超出要求。我已经删除了它,但是,我现在只从每列中的 JSON 返回一个“未定义”结果。
  • @Byate 您是否在 firebug/Web Inspector/F12 工具中检查了 Ajax 请求的返回?
  • 我在 Firebug 中进行了检查,并且 JSON 正在按检查方式加载。它将它解析到问题开始的 HTML 表中,导致“未定义”结果
  • @Byate 什么时候返回“'未定义'结果?”
  • 当我在浏览器中查看我的索引文件时显示。调试页面时,页面成功返回 JSON 数据,但将其显示为 50 条“未定义”记录,解析后的 JSON 数据应该在哪里。难倒!
【解决方案2】:

这里有一个例子:http://jsfiddle.net/nqRk9/2/

如果您的数据是:

{"ARTIST":"Katy Perry","LOCATION":"United States"}

你可以在没有 for 循环的情况下这样做:

    tr = $('<tr/>');
    tr.append("<td>" + data.ARTIST + "</td>");
    tr.append("<td>" + data.LOCATION + "</td>");
    $('#single').append(tr);

但是,如果您有更多的艺术家和地点,这里是您的数据可能是什么样子的一个示例。

{"ARTIST":[["Katy Perry"], ["Artist 2"], ["Artist 3"]],"LOCATION":[["United States"],["Location 2"], ["Location 3"]]};

以下是访问数据的方法:

for(var i = 0; i < data.ARTIST.length; ++i)
{
        tr = $('<tr/>');
        tr.append("<td>" + data.ARTIST[i] + "</td>");
        tr.append("<td>" + data.LOCATION[i] + "</td>");
        $('#multiple').append(tr);
}

我相信你的数组下标在错误的地方,在 OP 中。

【讨论】:

  • 谢谢 - 它没有解决我遇到的特定问题,但这是一个很好的方法,我已经将它改编到我的代码中。我在for 循环之前添加了一个变量var sentdata=JSON.parse(data),并将data 更改为sentdata。这现在可以根据需要解析数据。
猜你喜欢
相关资源
最近更新 更多
热门标签