htmlのフォームの要素を上手い具合に配列にして使いたい
以下のようなhtmlを用意しました。
<form>
<h2>クエリ1</h2>
<input type="hidden" name="query[][name]" value="query1">
<input type="hidden" name="query[][params][][name]" value="param11">
パラメータ1<input type="text" name="query[][params][][value]" value="value11"><br>
<input type="hidden" name="query[][params][][name]" value="param12">
パラメータ2<input type="text" name="query[][params][][value]" value="value12"><br>
<input type="hidden" name="query[][params][][name]" value="param13">
パラメータ3<input type="text" name="query[][params][][value]" value="value13"><br>
<h2>クエリ2</h2>
<input type="hidden" name="query[][name]" value="query2">
<input type="hidden" name="query[][params][][name]" value="param21">
パラメータ1<input type="text" name="query[][params][][value]" value="value21"><br>
<input type="hidden" name="query[][params][][name]" value="param22">
パラメータ2<input type="text" name="query[][params][][value]" value="value22"><br>
<input type="hidden" name="query[][params][][name]" value="param23">
パラメータ3<input type="text" name="query[][params][][value]" value="value23"><br>
<input type="submit" value="送信">
</form>
このフォームの送信ボタンを押した際、送られるデータをjson形式で見た場合に以下のようになると予想しました。
{
"query": [
{
"name": "query1",
"params": [
{
"name": "param11",
"value": "value11"
},
{
"name": "param12",
"value": "value12"
},
{
"name": "param13",
"value": "value13"
}
]
},
{
"name": "query2",
"params": [
{
"name": "param21",
"value": "value21"
},
{
"name": "param22",
"value": "value22"
},
{
"name": "param23",
"value": "value23"
}
]
}
]
}
しかし結果は次のようになり、ぐちゃぐちゃでした。
{
"query": [
{
"params": [
{ "value": "value11" }
]
},
{
"params": [
{ "value": "value12" }
]
},
{
"params": [
{ "value": "value13" }
]
},
{
"params": [
{ "value": "value21" }
]
},
{
"params": [
{ "value": "value22" }
]
},
{
"params": [
{ "value": "value23" }
]
},
{
"params": [
{ "name": "param11" }
]
},
{
"params": [
{ "name": "param12" }
]
},
{
"params": [
{ "name": "param13" }
]
},
{
"params": [
{ "name": "param21" }
]
},
{
"params": [
{ "name": "param22" }
]
},
{
"name": "query1",
"params": [
{ "name": "param23" }
]
},
{ "name": "query2" }
]
}
htmlのname
属性をどのように書けば、予想のような形になるでしょうか?
ちなみに配列の部分を、
{
"0": {
...
},
"1": {
...
},
...
}
といった書き方はしたくありません。連想配列ではなく普通の配列の形にして使いたいです。