这是从前一个问题mine开始的,但是已经重新聚焦以解决特定的jQuery问题。
我目前正在尝试将PHP / MySQL搜索中的JSON结果解析为一个简单的HTML表。但是,使用搜索时,我的表中没有数据返回。我收到了Ajax请求的响应,因为当我在Firebug中调试我的搜索页面时,我的请求以这个正确的JSON字符串返回:
[{"ARTIST":"Coldplay","TRACKTITLE":"Fix You","PLAYLIST":"Rock"},{"ARTIST":"Katy Perry","TRACKTITLE":"Roar","PLAYLIST":"Pop"}]
在我的jQuery文件中,我可以解析JSON以将每个{}
数据字符串附加到HTML表的一行中(将ARTIST,TRACKTITLE和PLAYLIST作为我的列标题)。我不清楚我哪里出错了,为什么我的JSON字符串没有正确转换成我的HTML表格,所以任何以正确方式解析这些数据的指针都会有所帮助。
jQuery文件
$.post('ajax/name.php', {name: name}, function(data) {
var sentData=JSON.parse(data)
for(var i = 0; i < sentData.ARTIST.length; ++i)
var tr = $('<tr/>');
tr.append("<td>" + sentData.ARTIST + "</td>");
tr.append("<td>" + sentData.TRACKTITLE + "</td>");
tr.append("<td>" + sentData.PLAYLIST + "</td>");
$('#multiple').append(tr);
});
HTML提取
<table class="table hovered" id="multiple">
<thead>
<tr>
<th class="text-left">Artist</th>
<th class="text-left">Track Title</th>
<th class="text-left">Playlist</th>
</tr>
</thead>
</table>
更新
我在我的PHP文件中添加了header('Content-Type: application/json');
,现在Firebug显示了一个JSON标签,这是个好消息。但是我仍然无法将该JSON解析为HTML表格。
答案 0 :(得分:0)
您的数据是有效的JSON并且是一个数组,因此请使用index来获取数据。所以你不需要JSON.parse
$.post('ajax/name.php', {
name: name
}, function (data) {
for (var i = 0; i < data.length; ++i)
var tr = $('<tr/>');
tr.append("<td>" + data[i].ARTIST + "</td>");
tr.append("<td>" + data[i].TRACKTITLE + "</td>");
tr.append("<td>" + data[i].PLAYLIST + "</td>");
$('#multiple').append(tr);
});
答案 1 :(得分:0)
不确定是否有人感兴趣或者是否有任何用处但是我已经解决了问题 - 这是一个相当简单的问题。
在{}
行后for
以及$('#multiple').append(tr);
行后结束时,有一些缺失的括号{{1}}。