2012-04-26 90 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