从数组中提取值并传递给ajax Post调用的最有效方法

时间:2017-04-06 09:31:30

标签: javascript jquery ajax

目前我正在调用ajax并将以下对象作为数据发布:

var answer = {
                checklist: {id: 1},
                question: {id: questionId },
                answer: "testing1",
                notes: checkInNotes
        };

在服务器端,这会更新数据库中的答案和备注,其中找到ID为1的问题和核对清单。

现在说我有一系列的问题我需要传递给ajax作为上述对象中该问题属性的一部分。在ajax中实现这一目标的最佳方法是什么?

目前,我可以通过向数据库中发送需要更新的每个值的服务器x​​次数发送ajax调用来实现此目的,但这显然效率低下。

我对ajax很新,所以请原谅我缺乏知识。

感谢您的时间。

2 个答案:

答案 0 :(得分:0)

JSON允许数组和对象。

您可以将数组包含为对象属性之一(如果这是您需要的)并将其放入服务器中。

var answer = {
                checklist: {id: 1},
                question: {id: questionId },
                answer: "testing1",
                notes: checkInNotes,
                arrayOfQuestionId: [ 1, 2, 3, 4 ]
        };

你也可以发送一个对象数组而不只是一个:

var otherAnswer = [ object1, object2, ... ];

答案 1 :(得分:0)

提示:生成混合数据并将其全部发布到服务器端。

  

1.发送客户的所有请求
   2.发送所有混合数据到服务器并进行解析。

way1:来自服务器

let url='*',ids=[1,2,3];

//生成数组的参数。

function getarams(){
 let requests_params=ids.map(i=>{
    let data_temp={question:{id:i}}
    return data_temp;
  }||[];
 return resuests_params;
}

//从服务器解析

$.post(url,{data:getParams()},function(data,status){},'json');<br>

way2:发送所有帖子

let posts=getParams().map(d=>{
       return $.post(url,d)
});
$.when(posts[0],posts[1],posts[2]).then(result=>{
   console.log(result);
})