2011-10-27 32 views
0

私は以下のようにAJAX呼び出しをしています。 PHP側の jQueryとAJAXを使用してJSONデータをPHPに渡す

$.ajax({ 
    type: "POST", 
    url: "php/customheader.php", 
    data: { 
     update: 1, 
     header : { 
      1 : custom[1].header, 
      2 : custom[2].header, 
      3 : custom[3].header, 
      4 : custom[4].header 
     }, 
     header_key : { 
      1 : custom[1].key, 
      2 : custom[2].key, 
      3 : custom[3].key, 
      4 : custom[4].key 
     } 
    }, 
    dataType : 'json', 
    success: function(data) ajaxSuccessCallback(this_dialog, data) 

}); 

は、私がループなど、私が試した中で使用するために適切な連想配列の中に、このデータを取得するために苦労しています。

$_POST['update'] 

1を返します。ですから、データが連想型/多次元配列でないときにJSON - > PHPを使う方法を知っています。

これを呼び出す。

$_POST['header[1]'] 

は何も返しません。

この多次元データをPHPでの反復処理に適した形式にするには、どのような方法が最適ですか?

おかげで、

+0

を十分に活用あなたのPHPスクリプトの_POST ['header'] [1] ' – Teneff

+1

は' print_r($ _ POST); 'を実行して、あなたが望むデータにアクセスする方法をもっとはっきりさせるべきです。 –

+0

@Teneffありがとう!それはうまくいった! – mriksman

答えて

0

あなたは$_POST['header']を試してみましたか?

+0

'print_r($ _POST ['header']);'は 'Array'を生成します。 これはうまくいけば、配列全体を印刷してはいけませんか? – mriksman

+1

'var_dump($ _ POST)'はより多くの情報を提供します。 – xdazz

0

まず、クライアント側で最初にJSONテキストに変換 例えば

var obj = {'update':1,'header':{'key1':custom[1].key,'key2':custom[2].key,'keyN':custom[N].key},...} 
var jsonstring = JSON.stringify(obj); 

オブジェクトを設定した後、(JSONフォーマットについての詳細をお読みくださいJSON文字列に変換する文字列化機能を使用し、それを)簡単にAJAX要求を行う()オブジェクトを正しく設定する際にあなたを助ける)、$に.get()または.post $(とそれを送信します

//example 
$.get("serverside.php",{'data':jsonstring}); 

その後、サーバ側で、あなたが$に.getを使用言うことができます()を使用すると、

と表示されます
$str = $_GET['data']; 
$Obj = json_decode($str,true); 

その後、あなたは今言うことができる:

echo $Obj['update']; 

私は適切な方法は、 `$で、これが役に立てば幸い、と警告され、先にデバッグが多いですので、インターネット

関連する問題