2012-04-26 96 views
0

PHP json_encode爲AJAX VAR 「結果」:PHP json_encode到JS

[{"id":"139","assettypeid":"3","name":"skin1","body":"skin1.jpg"}] 

我試圖訪問的每個屬性,但我不能:

for (var i =0;i < result.length-1;i++) 
{ 
    var item = result[i]; 
    console.log (item.id + item.name + item.body); 
} 

我看到的是:

NaN 
NaN 
NaN 
NaN 
NaN 
NaN 
NaN 
NaN 
NaN 
... 

而且有太多的迭代......正如你在上面的JSON中看到的,應該只有4個循環。

+1

什麼'的console.log(結果);'說明了什麼?並且請在你檢索的地方添加代碼並解析json編碼的數據! – Niko 2012-04-26 21:04:10

+0

[{「id」:「139」,「assettypeid」:「3」,「name」:「skin1」,「body」:「skin1.jpg」}] – dcolumbus 2012-04-26 21:43:04

+0

爲什麼你從長度中減去? '我 Niko 2012-04-26 21:50:38

回答

1

UPDATE:

我修改我的回答創建一個JSON調用,如PHP或Ruby的服務器端文件。如果您使用的是jQuery,請嘗試以下代碼:

$.ajax({ 
    url: 'http://url-of-your-server-side.com/server-side-file-name.php', 
    dataType: 'jsonp', 
    jsonp: 'jsoncallback', 
    success: function(data) { 
     $.each(data, function(i,item){ 
      console.log (item.id + item.name + item.body); 
     }); 
    error: function(){ 
     // execute upon failure 
    } 

數據是保存由您的ajax請求提供的數組的變量。

+0

NaN NaN NaN NaN – dcolumbus 2012-04-26 21:43:59

+0

原因是因爲您在通過循環傳遞它之前沒有解析過您的JSON。在上面的示例中,您沒有添加檢索JSON數據並解析它的腳本部分。我修改了我的答案,添加了jQuery版本來解析和循環服務器端數據。 – Karl 2012-04-27 14:22:20

0
for(var item in result){ 
    console.log(item.id, item.name, item.body); 
} 
+1

你不應該在沒有檢查結果是一個對象還是一個原型屬性的情況下使用這種'for in'構造 – 2012-04-26 21:20:45