首页 > 解决方案 > 将数组添加到序列化的表单数据

问题描述

我想更新我表中的选定行。每行都有一个 id(id 来自数据库中的表)。所以我尝试将这些 id 添加到序列化数据中。数组如下所示:

["1", "3"]

表单数据:

{"f_name":["tom","peter"],"l_name":["fel", "dan"]}

我想收到这个:

{"id":["1","3"],"f_name":["tom","peter"],"l_name":["fel", "dan"]}

我怎样才能做到这一点?

演示:https ://jsfiddle.net/t6xkbdo0/

标签: javascriptphpjqueryserialization

解决方案


您可以减少元素以构建所需的输出,最后您必须在请求中将 js 对象作为主体发送。

let formData = Array.from(document.querySelectorAll('input')).reduce((a, i) => {
  if (!i.disabled) {
    (a[i.name] || (a[i.name] = [])).push(i.value);
  }
  return a;
}, {id: ['2', '3']});

console.log(formData);

推荐阅读