2012-04-04 103 views
0

如何從由我的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 

回答

0

你應該做

function(data) { 
    $.each(data, function(){ 
     $('#result').append('<p>Name:'+this.name+' Link:'+this.link+' Approve'+this.approve+'</p>'); 
    }); 
} 

這裏提琴http://jsfiddle.net/hUkWK/

0
$.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>"); 
    }); 
}); 
1

當你完成print $callback.'('.$out_string.');';你已經毀了JSON格式的字符串。以數組形式發回,然後循環顯示您的行並顯示數據。

$out_string = json_encode(array('callback' => $callback, 'rows' => $rows)); 
+0

如果OP使用JSONP進行跨域AJAX調用vi jQuery,他的原始「print」行是正確的。我不得不昨天使用完全相同的格式來實現跨域調用 – DaveyBoy 2012-04-04 09:23:09

+0

是的,我正在做一個跨域調用。 – sm21guy 2012-04-04 09:23:29