可能重复: Json返回[ object ]而不是数组
我有一个数组,它包含一个子数组,通过POST请求将其拖到PHP文件中。问题是,我很难找到如何返回数组对象的值,更不用说迭代它了。
Javascript
$.ajax({
type: 'POST',
url: 'php.php',
data: 'id=testdata',
dataType: 'json',
cache: false,
success: function(result) {
alert(result[0]); // returns [Object object]
},
});
我确信它正确地从PHP文件中抓取数组。
这是PHP文件。
发布于 2012-04-06 20:33:54
在您的示例中,result
是一个对象数组,因此result[0]
是第一个对象。例如,要访问id
,可以使用result[0]['id']
。为了迭代对象数组,可以使用如下所示的for循环:
for(var i=0, len = result.length; i<len; i++) {
//write your code for each object in the results here
var id = result[i]['id'];
}
发布于 2012-04-06 20:34:20
你必须在你的对象中注明,我的意思是.
alert(result[0]['field_name']);
当您使用PHP从一个'id‘获取一些数据时,我可以建议您在查询mysql时使用下一个语法,
echo json_encode(mysql_fetch_object(mysql_query('your_query')));
使用此语法,您将只得到一个对象,其中包含查询中的所有字段,因此警告如下:
alert(result['field_name']);
希望这能帮上忙。
发布于 2012-04-06 20:30:42
您可以对其进行迭代,例如:
$.each(result, function () {
alert(this.name); // or this.id, this.description, etc.
});
我建议使用像Firebug这样的工具,然后执行console.log(result);
以获得更多的描述性输出。
https://stackoverflow.com/questions/10048845
复制相似问题