次のような深い多次元入力を含むフォームがあります。
<form id="theForm">
<input type='text' name='one[two][three][]' />
<input type='text' name='one[two][three][]' />
<input type='text' name='four[five][six][seven]' />
<input type='text' name='eight[nine][ten]' />
</form>
フォームが正常に送信された場合と同じ形式で、AJAX 経由で値を送信しようとしています。つまり、送信ボタンを押すと、PHP で $_POST は次のようになります。これは私が欲しいものです:
array( 'one' => array( 'two' => array('three'=>array( [0] => "", [1] => "" ) ) ),
'four' => array( 'five' => array ('six' => array( 'seven' => "" ) ) ),
'eight' => array( 'nine' => array( 'ten' => "" ) ) )
)
私は基本的にフォーム送信をAJAXしようとしています。私がする時
$("#theForm").serializeArray()
$_POSTを介した送信は$.post()
次のようになります。
array( [0] => array( "name" => string "one[two][three][]", value=>"")
[1] => array( "name" => string "one[two][three][]", value=>"")
[2] => array( "name" => string "four[five][six][seven]", value=>"")
[3] => array( "name" => string "eight[nine][ten]", value=>"")
)
これは私には役に立たない。前に概説した多次元構造を保持する必要があります。配列を調べて、文字列を切り刻んで必要なものを再作成できると思いますが、これはばかげているように思えます。これを達成するためのjQueryフレンドリーな方法はありますか?
jQuery がどのように多次元配列を送信できるかについての他の投稿を読んだので、おそらく質問する必要があるのは、フォーム データを抽出して多次元配列に保持するにはどうすればよいかということです。