Javascript 如何序列化两个表单和整个表

Javascript 如何序列化两个表单和整个表,javascript,php,json,ajax,Javascript,Php,Json,Ajax,我试图将两个表单数据和整个表序列化在一起。这两个表单数据工作正常,但我无法序列化整个表记录。我附上了代码,我在下面已经试过了 有人能帮我解决这个问题吗 表格1 <form class="form-horizontal" id="frmproduct"> <div> <label>Total</label> <input type="text" class="form-control" id="totalcal" name=

我试图将两个表单数据和整个表序列化在一起。这两个表单数据工作正常,但我无法序列化整个表记录。我附上了代码,我在下面已经试过了

有人能帮我解决这个问题吗

表格1

<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>

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

$(“#frmproduct,#frmvendor,table_data”)
将搜索ID为
frmproduct
frmvendor
的HTML元素以及名为
table_data
的HTML元素,但它不会神奇地包含您创建的名为
table_data
的JavaScript变量

此外,仅用于序列化表单数据


有关可能的解决方案,请查看并将其附加到
\u data

然而,另一个问题是,您的
表_数据
是一个复杂的数组,而不是一个简单的对象。你可以试试这个:

_data = $('#frmproduct,#frmvendor').serialize();
_data += '&' + $.param( table_data );

但是我不确定你会得到想要的结果。您可能必须重新构造
表\u数据

问题是您使用“表\u数据”作为CSS选择器,因此它正在搜索元素。只看到这一点,但没有解决方案。仅表单#frmproduct,#frmvendor工作表数据不工作如何将表数据发送到save.php页面sir@paypalkob对这就是我在回答中试图解释的:你不能像那样序列化
table_data
。那么如何将表数据发送到save.php页面任何其他方式我尝试了sir结果显示未定义任何其他方式写入表并获取值sir。
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) {}
});
_data = $('#frmproduct,#frmvendor').serialize();
_data += '&' + $.param( table_data );