数组返回[Object object]而不是value?

时间:2012-04-06 20:23:55

标签: php javascript arrays json

  

可能重复:
  Json Returning [object object] instead of array

我有一个包含子数组的数组,通过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文件中正确地抓取数组。

这是the PHP file

3 个答案:

答案 0 :(得分:4)

在您的情况下,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'];
}

答案 1 :(得分:2)

你必须在你的对象中指定一个人来展示,我的意思是......

alert(result[0]['field_name']);

当你使用PHP从一个' id '获取一些数据时,我可以建议你在查询mysql时使用下一个语法,

echo json_encode(mysql_fetch_object(mysql_query('your_query')));

使用此语法,您将只获得一个包含查询中所有字段的对象,因此警报将为:

alert(result['field_name']);

我希望,这有帮助。

答案 2 :(得分:0)

您可以像:

一样迭代它
$.each(result, function () {
    alert(this.name);   // or this.id, this.description, etc.
});

我建议使用Firebug等工具,然后执行console.log(result);以获得更具描述性的输出。