我试图将两个表单数据和整个表一起序列化。两种形式的数据都可以正常工作,但是我无法序列化整个表记录。我附上了代码,下面我已经尝试过了。
谁能帮助我解决问题?
表格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>
表格2
<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) {}
});
最佳答案
您无法按预期方式序列化数据数组。$('#frmproduct,#frmvendor,table_data')
将搜索ID为frmproduct
和frmvendor
的HTML元素以及名为table_data
的HTML元素,但不会神奇地包含您创建的名为table_data
的JavaScript变量。
此外,.serialize()
仅用于序列化表单数据。
对于可能的解决方案,请查看jQuery.param()
并将其附加到_data
。
但是,另一个问题是您的table_data
是一个复杂的数组而不是一个简单的对象。您可以尝试以下方法:
_data = $('#frmproduct,#frmvendor').serialize();
_data += '&' + $.param( table_data );
但我不确定您能否获得理想的结果。您可能必须重组
table_data
。关于javascript - 如何序列化两个表格和整个表格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51406726/