2014-02-16 140 views
-1

所以我試圖列出有關用戶在我的數據庫中的信息,並用PHP爲每個用戶創建一個json_encoding。Javascript從URL讀取JSON

我有這個代碼的PHP文件:

$sql = mysql_query("SELECT * FROM "); 
$userinfo = array(); 
while($row = mysql_fetch_array($sql)) 
    $userinfo[] = $row;  


foreach ($userinfo as $user) { 
    echo json_encode(array('id' => $user['id'])); 
} 

這給了我這樣的輸出:

{"id":"518536076"}{"id":"511953404"}{"id":"557076722"} etc.. 

然後我想通過閱讀我的JavaScript文件這樣的信息:

$.ajax({ 
    type: "POST", 
    url: "http://url to php file.php", 
    datatype: 'json', 
    success: function(data){ 
     var parsed_data = $.parseJSON(data); 
     var nTotal = parsed_data.id; 
     console.log(nTotal); 
    } 
}); 

但是這不對我有利,我只是得到

JSON.parse: unexpected non-whitespace character after JSON data 

任何想法,我需要解決什麼使這項工作?

在此先感謝! :)

+2

你不要多次,這將使你無效JSON文本調用json_encode,只需調用'json_encode($ userinfo);'它將完成整個數組。另外,當用'dataType:'json''提供JQuery的ajax方法時,它會自動解析它,不需要自己解析它。 –

+1

就像它看起來那樣使用Javascript?因爲網址末尾缺少引號。 – MrLore

+0

啊,我明白了。謝謝:)不,我必須忘記當我刪除我的網址。 –

回答

2

的問題是在後端側:

你應該用這個代替你最後的foreach:

$output = array(); 
foreach ($userinfo as $user) { 
    $output[] = array('id' => $user['id']); 
} 

header('Content-type: application/json'); 
echo json_encode($output), 
+0

謝謝@StefanoOrtisi!看起來相當不錯 :) –