フォームが投稿されたときにPHPが表示するのと同じ種類のネストされたオブジェクト形式でjavascript(+ Mootools)を使用してHTMLフォームからデータを抽出する必要があります。
私はグーグルが苦手なのですか、それともこれを達成するためのネイティブな方法もよく知られた方法もありませんか?他の多くの人がさまざまなフォーラムで同じ質問をしているようですが、これまでのところ、すべてがjQueryserializeArrayなどのソリューションを受け入れています。
jsFiddle http://jsfiddle.net/7quxe/でserializeArrayを試してみましたが、結果は期待外れでした。
私は以前にこのためのスクリプトを自分で作成しましたが、フォームに混合キータイプのフィールドが重複しているときに問題が発生したことを除いて、非常にうまく機能しました(<input name="foo[bar]" value="1"> and <input name="foo[]" value="2"
。私はすでにより良いバージョンで作業を開始しましたが、最初からやり直して、繰り返しになりますが、私は自分自身に思いました:多くの基本的な日常の問題を解決することを目的とした素晴らしいjsライブラリがたくさんあります。適切にフォーマットされたオブジェクトのフォームからデータを抽出したいというのはそれほど一般的ではないのでしょうか。
これが私が試みていることの例です:
<form method="post" action="/">
<input name="test" value="test">
<input name="nested[a]" value="a">
<input name="nested[b]" value="b">
<input name="nested[c]" value="c">
<input name="arraytest[]" value="foo">
<input name="arraytest[]" value="foo">
<input name="arraytest[]" value="foo">
</form>
PHPがこれをどのように認識するかを次に示します。
$_POST = array(
'test' => 'test',
'nested' => array(
'a' => 'a',
'b' => 'b',
'c' => 'c',
),
'arraytest' => array(
0 => 'foo1',
1 => 'foo2',
2 => 'foo3'
)
)
これが私がjsで取得したいものです:
{
test : 'test',
nested : {
a : 'a',
b : 'b',
c : 'c'
},
arraytest : { // This could also be an array ['foo1','foo2','foo3']
0 : 'foo1',
1 : 'foo2',
2 : 'foo3'
}
}