将多个序列化对象合并为一个?

Merge multiple serializeobject to one?

是否可以将多个serializeobject合并为一个serializeobject?我将在 post 中使用它。序列化对象是通过 for 循环创建的。

var data = [];
for (var i = 0; i < riid_count; i++) {
  data[i] = $('input[type=checkbox][data-record='+i+']').serializeObject();
  data[i].id = $('input[name=id][data-record='+i+']').val();
  console.log(data[i]);
}

$.ajax({
  url : '<?php echo base_url() . 'index.php/unsubscribe/submit' ?>',
  data: data (hopefully access the merged objects),
  method: "POST",
  processData: true,
  dataType: 'json',
  error: function(xhr, status, thrown)
  {
  // i have stuff here
  },
  success: function(data)
  {
  // i have stuff here
  }
});

下面是 <form> 元素的外观示例:

<form>
  <input type="checkbox" data-record="0" class="selection" name="somename"> 
</form>

根据我从数据库中获取的数据,最多可以有 10 个(或更多)复选框。

我仍然不知道您的 HTML 会是什么样子以及我们仍然可以进行哪些优化。但是下面收集了那些元素的输入字段 “选中”复选框。或许对你有帮助?

function collectData(){
  var data = [];
  for (var i = 0; i < 7; i++) {
    data[i] = $('input[type=checkbox][data-record='+i+']').serializeArray();
    if (data[i][0]) data[i][0].id = $('input[name=id][data-record='+i+']').val();
  // console.log(data[i]);
  }
  let da=data.filter(e=>e.length).map(e=>e[0]);
  console.log(da)
}
$('button').click(collectData);
input[type=text] {width:25px}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<input type="checkbox" data-record="0" name="zero" value="zero">
<input type="text" data-record="0" name="id" value="000">
<input type="checkbox" data-record="1" name="one" value="un">
<input type="text" data-record="1" name="id" value="111">
<input type="checkbox" data-record="2" name="two" value="dos" checked>
<input type="text" data-record="2" name="id" value="222">
<input type="checkbox" data-record="3" name="three" value="tres">
<input type="text" data-record="3" name="id" value="333">
<input type="checkbox" data-record="4" name="four" value="cuatro" checked>
<input type="text" data-record="4" name="id" value="444">
<input type="checkbox" data-record="5" name="five" value="cinquo">
<input type="text" data-record="5" name="id" value="555">
<input type="checkbox" data-record="6" name="six" value="seis">
<input type="text" data-record="6" name="id" value="666">
</form>
<button> send </button>