私はこのようなオブジェクトを持っています
var obj = {p1:true、p2:true、p3:false}
このオブジェクトをPOSTリクエストの一部として渡そうとしています。
しかし、もう一方の端(phpで)で私が得るのは
[オブジェクトオブジェクト]
郵便でオブジェクトを送信するにはどうすればよいですか?
基本的に私がやろうとしているのは
非表示で、そのように作成された入力があります
<input id="obj" type="hidden" name="obj[]">
これは隠されたフォームの一部です。
ボタンが押されたとき私は持っています
$(#obj).val(obj);
$('form').submit();
オブジェクトを送信する前に、オブジェクトをシリアル化/文字列に変換する必要があります。これには jQuery.param()
を使用できます。
$('#obj').val(jQuery.param(obj));
[〜#〜] json [〜#〜] 表記を使用してオブジェクトをサーバーに送信することを検討してください。 ページに JSONパーサー/レンダラー を含めると、(現在、すべての最新のブラウザーに組み込まれており、標準モードのIE8にも組み込まれています)オブジェクトを文字列に変換して、完全なオブジェクトグラフを保持できます。現在、ほとんどのサーバーサイド言語でJSON解析を利用できます(PHPではjson_decode
、 例えば)。フォームを送信する前に、その文字列を非表示のフォームフィールドに入力できます。
これは次のようになります。
$('#obj').val(JSON.stringify(obj));
$('form').submit();
...そしてサーバー側には次の形式の文字列が表示されます
{ "p1" : true, "p2" : true, "p3" : false }