我正在通过一个简单的搜索框,通过PHP(服务器端)和jQuery(前端)将多个MySQL JSON行输出到HTML表。我已成功设法将一行JSON解析为表,但现在需要容纳多行JSON数据。
搜索页面上的我的HTML表格如下所示:
ARTIST | TITLE | LOCATION
U2 | One | Ireland
Foals | Miami | UK
并传递给它的JSON文件使用类似的标题:
{"ARTIST":"Katy Perry","LOCATION":"United States", "TRACKTITLE":"Roar"}
我已经玩了一段时间的代码,结合数组来循环数据。这可以正常工作,因为它正确地循环MySQL行,并成功地以JSON格式发送多行数据(我在Firebug中解码了我的搜索页面)。问题是我的jQuery文件无法将其放入我的HTML表格中,导致出现空白页面。我已经尝试过以前的Stackoverflow问题中的各种数组方法,但是不能让它工作,返回“艺术家”,“跟踪”和#39; TRACKTITLE'和' LOCATION'每个返回结果的字段
从PHP文件中提取:
$result = mysql_query($sql);
$data = array();
while ($array = mysql_fetch_assoc($result)) {
$data[] = $array;
}
echo json_encode($data);
编辑包含jQuery提取和更具体的问题:
function(data) {
var sentData=JSON.parse(data)
for (var i = 0; i < sentData.ARTIST.length; ++i)
{
tr = $('<tr/>');
tr.append("<td>" + sentData.ARTIST + "</td>");
tr.append("<td>" + sentData.TRACKTITLE + "</td>");
tr.append("<td>" + sentData.LOCATION + "</td>");
$('#multiple').append(tr);
}
});
我如何只解析每个&#39; ARTIST&#39;,TRACKTITLE&#39;的相应值?和&#39; LOCATION&#39;结果使用JSON.parse方法?这是完整返回的JSON字符串:
[{"ARTIST":"Katy Perry","TRACKTITLE":"Roar","LOCATION":"United States"}, {"ARTIST":"U2","TRACKTITLE":"One","LOCATION":"Ireland"}]
答案 0 :(得分:0)
试试这个我拿了你提供的javascript并更改如下。 (另见底部的jsfiddle)
var sentData=JSON.parse('{"ARTIST":[["Katy Perry"], ["U2"]],"LOCATION":[["United States"], ["Ireland"]],"TRACKTITLE":[["Roar"], ["One"]]}')
for (var i = 0; i < sentData.ARTIST.length; ++i)
{
tr = $('<tr/>');
tr.append("<td>" + sentData.ARTIST[i] + "</td>");
tr.append("<td>" + sentData.TRACKTITLE[i] + "</td>");
tr.append("<td>" + sentData.LOCATION[i] + "</td>");
$('#multiple').append(tr);
}
在这里看到jsfiddle的工作。 http://jsfiddle.net/jspatel/Ya82B/