什么可能导致我的阵列无法正确形成?我得到以下结果。
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;
最佳答案
问题出在您处理数据的方式上
$(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']);
关于javascript - 表单名称数组不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51403086/