Jquery 通过AJAX发送多维表单JSON数据
我被困在一个多维表单问题上 我试图通过ajax发送一个JSON,其结构如下:Jquery 通过AJAX发送多维表单JSON数据,jquery,json,ajax,multidimensional-array,Jquery,Json,Ajax,Multidimensional Array,我被困在一个多维表单问题上 我试图通过ajax发送一个JSON,其结构如下: { "user": 1, "quiz": 25, "questions": { // question 132, hidden input (checkboxes) "132": [24536, 566, 64], // question 133, hidden input (mixed ch
{
"user": 1,
"quiz": 25,
"questions": {
// question 132, hidden input (checkboxes)
"132": [24536, 566, 64],
// question 133, hidden input (mixed checkboxes/textarea)
"133": [2345, "some text from a text area", 456],
// question 134, hidden input (radio buttons)
"134": [876]
},
"other_data": [2, 543, "test", 989]
}
我的表格:
<form id="myForm" action="myAPI.php">
<input type="hidden" name="user" value="1">
<input type="hidden" name="quiz" value="25">
<p>Question A</p>
<input type="hidden" name="question" value="132">
a1
<input name="answer[]" type="checkbox" value="a"><br>
a2
<input name="answer[]" type="checkbox" value="b"><br>
a3
<input name="answer[]" type="checkbox" value="c"><br>
<p>Question B</p>
<input type="hidden" name="question" value="133" >
a1
<input name="answer[]" type="checkbox" value="d"><br>
a2
<input name="answer[]" type="checkbox" value="e"><br>
a3
<textarea name="answer_" rows="3"></textarea><br>
<p>Question C</p>
<input type="hidden" name="question" value="134">
a1
<input name="answer" type="radio" value="f"><br>
a2
<input name="answer" type="radio" value="g"><br>
a3
<input name="answer" type="radio" value="h"><br>
<hr>
<button type="submit">invia</button>
</form>
输出为:
[{
"name": "user",
"value": "1"
}, {
"name": "quiz",
"value": "25"
}, {
"name": "question",
"value": "132"
}, {
"name": "answer[]",
"value": "b"
}, {
"name": "answer[]",
"value": "c"
}, {
"name": "question",
"value": "133"
}, {
"name": "answer[]",
"value": "e"
}, {
"name": "answer_",
"value": "test"
}, {
"name": "question",
"value": "134"
}, {
"name": "answer",
"value": "g"
}]
有小费吗?我做错了什么 我使用:)解决了这个问题,这是
serializeArray()
的正确行为。要构建所需的结构,需要编写自己的逻辑。表单的结构与要创建的JSON对象不同。另外,我不会调用myForm.serializeArray()
。这就是为什么它生成的是一个数组,而不是一个对象。
[{
"name": "user",
"value": "1"
}, {
"name": "quiz",
"value": "25"
}, {
"name": "question",
"value": "132"
}, {
"name": "answer[]",
"value": "b"
}, {
"name": "answer[]",
"value": "c"
}, {
"name": "question",
"value": "133"
}, {
"name": "answer[]",
"value": "e"
}, {
"name": "answer_",
"value": "test"
}, {
"name": "question",
"value": "134"
}, {
"name": "answer",
"value": "g"
}]