如何序列化两个表格和整个表格

时间:2018-07-18 16:17:23

标签: javascript php json ajax

我试图将两个表单数据和整个表一起序列化。两种形式的数据都可以正常工作,但是我无法序列化整个表记录。我附上了代码,这是我到目前为止已经尝试过的。

有人可以帮助我解决问题吗?

Form1

<form class="form-horizontal" id="frmproduct">
  <div>
    <label>Total</label>
    <input type="text" class="form-control" id="totalcal" name="totalcal">
  </div>
  <div>
    <label>Subtotal</label>
    <input type="text" class="form-control" id="subtotal" name="subtotal">
  </div>
</form>

Form2

<form class="form-horizontal" id="frmvendor">
  <div>
    <label>vendor</label>
    <input type="text" class="form-control" id="vendor" name="vendor">
  </div>
  <div>
    <label>vendorn</label>
    <input type="text" class="form-control" id="vendorn" name="vendorn">
  </div>
</form>

这是什么错误?? _data = $('#frmproduct,#frmvendor,table_data').serialize();

表格

var table_data = [];
$('table tbody tr').each(function(row, tr) {
  var sub = {
    'productcode': $(tr).find('td:eq(0)').text(),
    'productname': $(tr).find('td:eq(1)').text(),
    'price': $(tr).find('td:eq(2)').text(),
    'qty': $(tr).find('td:eq(3)').text(),
    'total': $(tr).find('td:eq(4)').text(),

  };
  table_data.push(sub);
});
//  + "&table_data=" + table_data
_data = $('#frmproduct,#frmvendor,table_data').serialize();

var _method;
console.log(_data);
$.ajax({
  type: "POST",
  url: "save.php",
  dataType: "JSON",
  data: {
    data: _data
  },
  success: function(data) {}
});

1 个答案:

答案 0 :(得分:1)

您无法按预期方式序列化数据数组。

customerErrors.purchases.errors[index].error.qty将搜索ID为$('#frmproduct,#frmvendor,table_data')frmproduct的HTML元素以及名为frmvendor的HTML元素,但不会神奇地包含名为{您创建的{1}}。

此外,.serialize()仅用于序列化表单数据。


要寻求可能的解决方案,请查看jQuery.param()并将其附加到table_data

但是,另一个问题是您的table_data是一个复杂的数组而不是一个简单的对象。您可以尝试以下方法:

_data

但我不确定您是否会获得理想的结果。您可能必须重组table_data