是什么原因导致阵列无法正确形成?我得到以下结果。
array(1) {
["element[119"]=>
array(1) {
["data"]=>
string(1) "0"
}
}
结果显示如下。
array(1) {
["element"]=>
array(1) {
["119"]=>
array(1) {
["data"]=>
string(1) "0"
}
}
}
简化的前端:
<input class="custom-control-input data is-valid" data-parent="0" data-qid="119" name="element[119][data]" id="119-Yes" type="radio" onchange="showTextBox(this)" value="1" checked="">
<script type="text/javascript">
var formData = {};
$(form).find(":input.data:visible, input[type=hidden].data").each(function (index, node) {
formData[node.name] = node.value;
});
console.log(formData);
$.ajax({
url: "index.php?route=form/form/saveSection",
data: { form_id: $("#formRequest").data("formsaveid"), section_id: $("#formRequest").data("currentsectionid"), path: $("#formRequest").data("formpath"), action: "saveSection", data: formData},
dataType: "json",
method: "POST",
beforeSend: function() {
console.log("Saving Section...");
console.log("Section ID: "+$("#formRequest").data("currentsectionid"));
console.log(postData);
},
success: function(data) {
}
});
</script>
简化的后端:
var_dump($data);exit;
答案 0 :(得分:1)
问题在于您处理数据的方式
$(form).find(":input.data:visible, input[type=hidden].data").each(function (index, node) {
formData[node.name] = node.value;
});
真的,您需要序列化整个表单并将其转换为json,因此将上面的内容替换为:
var formData = JSON.parse($(form).serializeArray());
然后您可以:
<?php
var_dump($_POST['data']);
答案 1 :(得分:0)
window.open("score_display.php?score="+_score);
尝试将所有内容封装在HTML的名称标签中的数组括号内。