JSON编码多个MySQL行

时间:2013-12-23 18:30:33

标签: php jquery mysql json

我正在通过一个简单的搜索框,通过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"}]

1 个答案:

答案 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/