如何使用jQuery显示来自JSON数组的数据
问题描述:
如何从由我的PHP脚本发回的JSON获取数组数据?如何使用jQuery显示来自JSON数组的数据
PHP代码:
<?php
//connects to database
include 'connect.php';
$callback = $_GET['callback'];
$query = mysql_query("SELECT * FROM users");
$rows = array();
while($r = mysql_fetch_assoc($query)) {
$rows[] = $r;
}
$out_string = json_encode($rows);
print $callback.'('.$out_string.');';
?>
PHP代码以上将所有用户表的行进行到一个数组和JSONencodes它。然后它被发送回这个脚本:
$.getJSON(domain_path + 'generate.php?table=' + tbname + '&callback=?', function(data) {
});
如何显示发回来的JSON数组的每一行?
例如数据将被发送回的是:
([{"name":"user1","link":"google.com","approve":"true"},{"name":"user2","link":"yahoo.com","approve":"true"},{"name":"user3","link":"wikipedia.com","approve":"true"}]);
我将如何使用JavaScript(jQuery的),以显示它是这样的:
Name: User1 , Link: google.com , Approve:True Name: User2 , Link: yahoo.com , Approve:True Name: User3 , Link: wikipedia.com , Approve:True
答
你应该做
function(data) {
$.each(data, function(){
$('#result').append('<p>Name:'+this.name+' Link:'+this.link+' Approve'+this.approve+'</p>');
});
}
答
$.getJSON(domain_path + 'generate.php?table=' + tbname + '&callback=?', function(data) {
$.each(data, function(i, item) {
$("#mycontainer").append("<p>Name: " + item.name + "</p>");
$("#mycontainer").append("<p>Link: " + item.link + "</p>");
});
});
答
当你完成print $callback.'('.$out_string.');';
你已经毁了JSON格式的字符串。以数组形式发回,然后循环显示您的行并显示数据。
$out_string = json_encode(array('callback' => $callback, 'rows' => $rows));
如果OP使用JSONP进行跨域AJAX调用vi jQuery,他的原始“print”行是正确的。我不得不昨天使用完全相同的格式来实现跨域调用 – DaveyBoy 2012-04-04 09:23:09
是的,我正在做一个跨域调用。 – sm21guy 2012-04-04 09:23:29