2016-12-04 45 views
0

POSTリクエストをPHPコントローラに送信しているJSがあります。次のようにJSコードは、次のようにサーバー側でPHPでJSONオブジェクトにアクセスする配列

$.ajax({ 
    url: 'map-controller/coordcontroller.php', 
    data: {myData:JSON.stringify(myArray)}, 
    type: 'post', 
    success: function(output) { 
    console.log(output); 
    } 
}); 

、$ _POST [「MYDATA」]は次のとおりです。私はそれを理解したよう

[{"lat":36.8867497490586,"lng":-76.3046246767044},{"lat":36.88671756964517,"lng":-76.30381464958191}] 

、私のデータは、単一の要素の配列に存在します($ _POST ["myData"])、コンマで区切られた一連のオブジェクトを含んでいます。 json_decode()を試しましたが、データオブジェクトが実際のJSONデータではなく配列なので、動作していないと感じています。

私の質問:どのようにしてループ内の各オブジェクトにアクセスできますか?それとも、私の実装に欠陥がありますか?データを違う方法で送信するようにJavascriptを変更する必要がありますか?中

+0

'json_decode()'はjsonオブジェクトから作成された別の配列を返しますが、単に 'foreach'を使ってループすることができます。 – georoot

+0

私はvar_dumpの代わりにechoを使ってjson_decode()の成功をテストしていました。私は今、json_decode()が期待どおりに動作し、私が誤って出力しようとしていることを発見しました。ありがとうございました。 – FantasticSponge

答えて

0
var_dump (json_decode($_POST["myData"])); 

結果:

array(2) { 
    [0]=> 
    object(stdClass)#1 (2) { 
    ["lat"]=> 
    float(36.886809817261) 
    ["lng"]=> 
    float(-76.304672956467) 
    } 
    [1]=> 
    object(stdClass)#2 (2) { 
    ["lat"]=> 
    float(36.886146919127) 
    ["lng"]=> 
    float(-76.305075287819) 
    } 
} 

私の間違いは、デコードされたオブジェクトをチェックするために代わりのvar_dumpのエコー使用していました。

関連する問題