2016-12-07 7 views
1

次のjQueryを使用して、返されるJSONの値をどのように読み取ることができますか?応答の値はalert("A" + obj.sender[0]);JSONを受け取ってAJAXでPHPに変数を送信

var session_id = $(this).find(".session_id").val(); 
    $.ajax({ 
     type: 'POST', 
     url: '../php/read.php', 
     dataType: "json", 
     data: {sesh_id: session_id}, 
     success: function (response) { 
      var obj = jQuery.parseJSON(response); 
      alert("A" + obj.sender[0]); 
     }, 
     error: function (response) { 
      alert("Err: " + response.status); 
     } 
    }); 

:それはどのようにして、エラーがでているように、jQueryのも実行されません

[{ 
    "sender":"[email protected]", 
    "details":"details1", 
    "date":"2017-01-04 16:11:04" 
}, 
{ 
    "sender":"[email protected]", 
    "details":"details2", 
    "date":"2017-01-04 16:11:05" 
}, 
{ 
    "sender":"[email protected]", 
    "details":"details3", 
    "date":"2017-01-04 16:11:06" 
}] 
+4

返されるエラーは何ですか? –

+0

実際にURLが投稿されていますか? – atoms

+0

javascriptを介して回答が得られているかどうか、インスペクタでチェックインしているかどうか、ステータスコードはどうなっていますか?2つの推測:1. urlはajaxリクエストでは有効ではありません2.何とかPHPがHTTP 500を返す –

答えて

1

あなたが持っている問題は、あなたのインデックスアクセサということですobjは配列であり、senderプロパティではないため、間違った場所にあるため、obj[0].senderにする必要があります。

dataType: 'json'のようにjQueryが自動的に応答するため、JSON.parse()に電話する必要はありません。これを試してみてください:

$.ajax({ 
    type: 'POST', 
    url: '../php/read.php', 
    dataType: "json", 
    data: { sesh_id: session_id }, 
    success: function (response) { 
     console.log("A" + obj[0].sender); 
    }, 
    error: function (response) { 
     console.log("Err: " + response.status); 
    } 
}); 

最後に、それはデータ型を強制しないようalert()上でデバッグするときconsole.log()がはるかに好適であることに注意してください。

関連する問題