我试图将两个表单数据和整个表一起序列化。两种形式的数据都可以正常工作,但是我无法序列化整个表记录。我附上了代码,这是我到目前为止已经尝试过的。
有人可以帮助我解决问题吗?
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) {}
});
答案 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
。