0

重複の可能性:
フォームからの多次元配列投稿

jQuery を使用して、クライアントから PHP サーバーにデータを送信したいと思います$.post()。サーバーに到着したら、次のいずれかになりたいと思い$_POST['myList']ます(これまでで最も簡単なもの)。内でデータ オブジェクトを何に設定すればよい$.post()ですか?

array (
  0=>array('id'=>123,'d1'=>'aaa','d2'=>'xxx'),
  1=>array('id'=>234,'d1'=>'bbb','d2'=>'yyy'),
  2=>array('id'=>345,'d1'=>'ccc','d2'=>'zzz')
)

array (
  123=>array('d1'=>'aaa','d2'=>'xxx'),
  234=>array('d1'=>'bbb','d2'=>'yyy'),
  345=>array('d1'=>'ccc','d2'=>'zzz')
)
4

5 に答える 5

2

編集:最初のものはオブジェクトの単純な配列のように見えましたが、jQuery はこれをキー付きオブジェクトにする必要があるようです:

var send_this = {
  0: { id: 123, d1: 'aaa', d2: 'xxx' },
  1: { id: 234, d1: 'bbb', d2: 'yyy' },
  2: { id: 345, d1: 'ccc', d2: 'zzz' }
};

2 番目の外観は、オブジェクトを含むオブジェクトに対して異なる外観のキーを持っているだけです。

var send_this = {
  '123': { d1: 'aaa', d2: 'xxx' },
  '234': { d1: 'bbb', d2: 'yyy' },
  '345': { d1: 'ccc', d2: 'zzz' }
};

jQuery 1.7.1 でテスト済みの実装:

$.post( '/herp.php', send_this, function(d) {
    console.info( d );
});

PHP プログラムは、$_POST で必要なデータを正確に受け取ります。

于 2012-11-27T21:11:32.097 に答える
1

オプション1

var data = [
  { id: 123, d1: 'aaa', d2: 'xxx' },
  { id: 234, d1: 'bbb', d2: 'yyy' },
  { id: 345, d1: 'ccc', d2: 'zzz' }
];

オプション2

var data = {
  '123': { d1: 'aaa', d2: 'xxx' },
  '234': { d1: 'bbb', d2: 'yyy' },
  '345': { d1: 'ccc', d2: 'zzz' }
};

それから

$.post(url, {mylist: data});
于 2012-11-27T21:19:32.180 に答える
0

jQuery$.postまたは$.getを使用している場合は、エンコード/デコードする必要はなく、データ引数としてJSオブジェクトを渡すだけです...

var data = {
  "myList" : {
    0 : {"id":1,...etc},
    1 : {"id":2,...etc},
    2 : {"id":3,...etc},
    etc...
  }
};


// post or get
$.post(
  url2post,
  data,
  callbackFunc
);
于 2012-11-27T21:16:25.483 に答える
0

属性ごとに 1 つずつ、3 つの配列として送信できます。

myList_id[]=123&myList_d1[]=aaa&myList_d2[]=xxx&myList_id[]=234&...

PHP では、それらを$_POST['myList_id']$_POST['myList_d1']およびとして受け取り、これら$_POST['myList_d2']を組み合わせて目的の配列にすることができます。

または、インデックスを含める場合は、さらに一歩進めることができます。

myList[0][id]=123&myList[0][d1]=aaa&myList[0][d2]=xxx&myList[1][id]=234&...

これにより、配列が直接得られます。$_POST['myList']

于 2012-11-27T21:11:22.217 に答える