使用两个数组的Ajax请求

时间:2018-12-12 06:52:50

标签: jquery ajax html5

我有两个数组。两者都来自两个不同的$ .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。

2 个答案:

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