通过ajax发送2个数组



首先,我想用input中的数据创建一个简单的数组

我想做一个循环,用表中的行创建一个数组。

这里有一些代码。

var first_array = {
"warehouse": $("#warehouse").val(),
"pricelist": $("#pricelist").val(),
"date": $("#date").val(),
"docstatus": "DR",
"paymentterm": $("#paymentterm").val()
}
var second_array = []; //Thanks to sagar1025  help create the second array
$("#table_main tbody > tr").each(function() {
var celdas = $(this).find('td');
second_array.push({
"line": $(celdas[0]).html(),
"code": $(celdas[1]).html()
});
});
/*Here my ajax*/
$.ajax({
data: {
array1: first_array,
array2: second_array
},
url: "<?php echo base_url() ?>main/save_data",
type: 'POST',
async: false,
cache: false,
success: function(response) {
},
error: function() {
toastr.error('ERROR', '', {
progressBar: true,
closeButton: true
});
}
});

现在我需要循环php文件中的第二个数组以下是我如何从first_array 中声明一个var

$docstatus   = trim($this->input->post('array1[docstatus]', TRUE));
$array       = $this->input->post('array2[]', TRUE);

Im使用codeigniter

这就是如何将多个对象pushadd连接到阵列

var second_array = [];
$("#table_main tbody > tr").each(function() {
var celdas = $(this).find('td');
second_array.push({
"line": $(celdas[0]).html(),
"code": $(celdas[1]).html()
});
});

Ajax调用应该是这样的:

$.ajax({
data: {
array1: first_array,
array2: second_array
},
url: "<?php echo base_url() ?>main/save_data",
type: 'POST',
async: false,
cache: false,
success: function(response) {
},
error: function() {
toastr.error('ERROR', '', {
progressBar: true,
closeButton: true
});
}
});

我认为您混淆了数组和对象,数组用[]表示。例如,var array=[1,2,3,4]对象用{}表示,例如:varObj={color:"red"}您可以在ajax调用中发送一个包含两个数组或两个对象的对象,这取决于您想要什么,例如,您可以执行以下操作:

var globobj={}
var first_object= {
"warehouse": $("#warehouse").val(),
"pricelist": $("#pricelist").val(),
"date": $("#date").val(),
"docstatus": "DR",
"paymentterm": $("#paymentterm").val()
} 
var second_object= {
"line": $(celdas[0]).html(),
"code": $(celdas[1]).html()
} 
globobj.first_object=first_object
globobj.second_object=second_object

因此,现在您的对象都组合在一起了,您可以使用globobj使您的ajax调用

相关内容

  • 没有找到相关文章

最新更新