1

重複の可能性:
配列の代わりに [object object] を返す Json

サブ配列を含む配列があり、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ファイルです

4

3 に答える 3

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'];
}
于 2012-04-06T20:33:54.840 に答える
2

オブジェクトで指定する必要があります。つまり、表示するオブジェクトを指定する必要があります。

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

PHPを使用して1つの' id 'からデータをフェッチしているので、mysqlをクエリするときは、次の構文を使用することをお勧めします。

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

この構文では、クエリでフェッチされたすべてのフィールドを含む1つのオブジェクトのみを取得するため、アラートは次のようになります。

alert(result['field_name']);

これがお役に立てば幸いです。

于 2012-04-06T20:34:20.313 に答える
0

次のように反復できます。

$.each(result, function () {
    alert(this.name);   // or this.id, this.description, etc.
});

Firebug などのツールを使用してconsole.log(result);、よりわかりやすい出力を取得することをお勧めします。

于 2012-04-06T20:30:42.323 に答える