2012-01-08 1 views
1

にjQueryのから送信されたデータを解析:投稿と私はPHPスクリプトに以下のものに似ていたデータ構造を渡すためにjQueryのを使用しようとしているPHP

{ 
    "shopping": 
    [ 
     { 
     "type": "online", 
     "mood": 9 
     }, 
     { 
     "type": "mood", 
     "mood": 4 
     } 
    ], 
    "researching": 
    [ 
     { 
     "type": "online", 
     "mood": 3 
     }, 
     { 
     "type": "library", 
     "mood": 1 
     } 
    ] 
} 

このデータをもとJSONの変化にユーザーが操作したフォームとスライダで、JSONが送信ボタンで非同期に送信されます。私は、このリクエストを提出するためにJQueryを使用する方法と、PHPで解析する方法を理解するのに問題があります。 POSTメソッドを使用してこのデータを送信したいと思います。今、私は使用しています:

$.post('server/dataInput.php',submissions, function(data){ 
    console.log(data); 
});  

投稿はJSONオブジェクトですが、これは動作していないようです。また、PHPの最後でこのJSONをどのように解析するのか分からない。

+1

「これは動作していないようです」---これは絶対に有益ではありません。そのjsonオブジェクトを送信し、 'var_dump($ _ POST);'を表示します。 – zerkms

+1

"$。post"が機能していないということは、何が動作していないかを詳しく調べる必要があります - パス 'server/dataInput.php'あなたが期待しているものとは異なるURLに投稿しています - あなたが見ることができるWebサーバーのログファイルですか? – Soren

答えて

6

jquery 1.4.0+を使用している場合は、json_decodeは不要です。あなたのデータはPHPで配列として受け取られます。

例:

JSの断片:

var testData = { 
    "shopping": [ 
     { 
     "type": "online", 
     "mood": 9 
     }, 
     { 
     "type": "mood", 
     "mood": 4 
     } 
    ], 
    "researching": [ 
     { 
     "type": "online", 
     "mood": 3 
     }, 
     { 
     "type": "library", 
     "mood": 1 
     } 
    ] 
}; 

function sendTest() { 
    $.post('test.php', testData, function(data) { console.log(data); }); 
} 

コールsendTest ...

test.phpを:

<?php 

var_dump($_POST); 

そして、あなたの成功の機能がtest.phpを出力するものが表示されます:

array(2) 
{ 
    ["shopping"]=> array(2) 
    { 
    [0]=> array(2) 
    { 
     ["type"]=> string(6) "online" 
     ["mood"]=> string(1) "9" 
    } 
    [1]=> array(2) 
    { 
     ["type"]=> string(4) "mood" 
     ["mood"]=> string(1) "4" 
    } 
    } 

    ["researching"]=> array(2) 
    { 
    [0]=> array(2) 
    { 
     ["type"]=> string(6) "online" 
     ["mood"]=> string(1) "3" 
    } 
    [1]=> array(2) 
    { 
     ["type"]=> string(7) "library" 
     ["mood"]=> string(1) "1" 
    } 
    } 
} 

ので、すべてのものは、すぐに動作します! :)

1

PHP json_decodeを使用してJSONデータを展開する必要がありますか?

+1

データは* jsonオブジェクト文字列*として送信されるのではなく、jsonオブジェクトとして送信されるため、すでに解析されています – zerkms

関連する問題