javascript - 表单名称数组不起作用

标签 javascript php html

什么可能导致我的阵列无法正确形成?我得到以下结果。

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/

相关文章:

javascript - 将 React 组件与另一个组件包装在同一文件中

javascript - 如何使用 Jquery 或 Javascript 从 Asp.Net TextBox 控件获取文本?

javascript - 如何在 JavaScript 中循环任意数量的嵌套数组的数组

javascript - 使用 Android 中的 WebView 自动填写表单

php - 在哪里使用 Zend Framework 翻译工具

php - 在 MySql 列中插入多个值

javascript - php:为 highcharts 渲染 javascript 时,laravel 慢速 View 渲染时间

javascript - 使用JS向文本字段添加字符

javascript - 在 JQuery 中删除时间戳的问题

html - Flex wrap-reverse 具有正常的内容顺序?