2016-08-30 5 views
0

ボタンをクリックしたときに連想配列の警告を送信しようとしていました。それはidと型の警告とトリガーコレクト関数を渡し、それらをキー値のペアとして配列に格納します。それから私は別のページにそれを送りたい。問題は、単純な配列であれば$ _POST ['warn']を呼び出すとうまくいくということです。連想配列に変更すると、警告が定義されていないというエラーメッセージが表示されます。これは私のJSコードです:ajaxで連想配列を送信する

var warnings = []; 
function collect(id,type){ warnings [id] = type;} 
$('#but1').click (function(){ 
    $.post ("url", {warn: warnings}function(r){alert (r);}); 
}); 

は私のPHPページにAJAXを使用して、キーと値のペアとして連想配列を送信し、$_POSTを使用して配列を取得する方法はありますか?

+1

JSON.stringify(警告)を使用し、PHPページでJSONを解析することができます。 – spaniol6

+0

jQueryを使用していますので、すでにデータを解析しています。データはwww-urlencodedとして解析されます。 PHPの正しいキーにアクセスする – adeneo

+0

'$ .post'呼び出しであなたのデータとコールバック関数の間にコンマがありませんが、それは他の問題を引き起こしていたので、それは誤字です。 –

答えて

0

あなたの警告はJavaScriptでそのように構成することができます

var warnings = { 

    warning1: { 
     id: 1, 
     type: 'info' 
    }, 

    warning2: { 
     id: 2, 
     type: 'danger' 
    } 

} 

は、次にPHPでサーバにJSONとしてwarningsオブジェクトを送信します。あなたはそのようにそれを解析することがあります。

$json = json_decode(filter_input(INPUT_POST, 'warnings')); 

warningsがあなたのAJAX呼び出しのデータに対応していることを確認してください。