我有两个数组。两者都来自两个不同的$ .each()函数。
var firstArray = ['item1', 'item2', 'item3', 'item4']; // **Dynamic Values
var counter = 0;
$.each(function(i, v){
//some code....
secondArray[counter] = $(this).val();
//secondArray have these values ['value1', 'value2', 'value3', 'value4']
counter++;
if(counter >= 4){
$.ajax({
type: 'POST',
url: customURL,
data: ?????
});
}
});
实际上,我希望像“ item1”这样的结果将得到“ value1”,“ item2”到“ value2”,依此类推。过去,当我使用-
之类的静态值时$.ajax({
type: 'POST',
url: customURL,
data: {
'item1' : value[0],
'item2' : value[1],
'item2' : value[2],
'item3' : value[3],
}
});
我使用这些静态值获得了结果,但是如何使用动态值代替“ item1”,“ item2”等。请记住,“ firstArray”值是动态的,意味着可以更改它们。我只使用jQuery和HTML。
答案 0 :(得分:2)
您只能通过一个请求发送一个数据集。所以也许您可以选择之前合并您的集合
仅示例代码
let firstArray = [1, 2, 3, 4];
let secondArray = ['a', 'b', 'c'];
let dataSet = {
first: firstarray,
second: secondArray
};
$.ajax({
url: customUrl,
method: 'POST',
accepts: 'application/json',
dataType: 'json',
data: dataSet
})
.done((res, status, xhr) => {
// whatever you need to do
})
.fail((xhr, status, state) => {
// whatever you need to do
});
之后,您必须处理后端的两个数组
答案 1 :(得分:2)
尝试此代码
var firstArray = ['item1', 'item2', 'item3', 'item4']; // **Dynamic Values
var secondArray = ['value1', 'value2', 'value3', 'value4'];
var ajaxData = {}; // initial declaration with empty object
$.each(firstArray , function(i, v){
ajaxData[firstArray[i]] = secondArray[i];
});
$.ajax({
type: 'POST',
url: customURL,
data: ajaxData,
}).done(function(result){
//do something after success
});
请轻松查看此小提琴:https://jsfiddle.net/syamsoul/zuncrx8q/4