0

私はphpがJSに返したデータを持っていますが、それをループして情報にアクセスする方法がわかりません...私はこれを持っています:

    result = call_data('get_chat.php');
            console.log(result);
    for(var data in result){

        alert(result[data]["id"]); //says undefined

    }

コンソール ログには次のように表示されます。

   [{"eventtime":"0000-00-00 00:00:00","message":"test2","bywho":"dave","id":"2"},
    {"eventtime":"0000-00-00 00:00:00","message":"testttt","bywho":"dave","id":"1"}]  

だから私はそれから各データをループしたいのですが、どうすればそれを行うことができますか? 本当に混乱しています!! 毎回未定義と言うだけです。

4

2 に答える 2

5

の場合typeof result === "string"は、反復する前に応答を解析する必要があります。

result = JSON.parse(call_data('get_chat.php'));

次に、他の人が指摘したように、sを使用した単純なforループを使用する必要があります。Array

for (var i = 0, l = result.length; i < l; i++) {
    console.log(result[i]["id"]);
}

for..inループは、インデックスだけでなく、すべての列挙可能なキーを繰り返します。

于 2012-09-04T01:48:43.880 に答える
2

PHPコードがオブジェクトの配列を返すように見えるので、最初に配列を反復処理してから、次のidようにキーにアクセスする必要があります。

for (var i = 0; i < result.length; i++){
  var obj = result[i];
  console.log(obj.id); // this will be the id that you want
  console.log(obj["id"]); // this will also be the id  
}
于 2012-09-04T01:45:41.527 に答える