从数组中提取值,并通过一个Ajax POST调用
问题描述:
目前我打电话AJAX和张贴下列对象数据的最有效的方法:从数组中提取值,并通过一个Ajax POST调用
var answer = {
checklist: {id: 1},
question: {id: questionId },
answer: "testing1",
notes: checkInNotes
};
在服务器端,这将更新的答案和笔记在数据库中找到id为1的问题和清单。
现在说我有questionId的数组,我需要传递给阿贾克斯在上面的对象问题财产的一部分。在ajax中实现这个最好的方法是什么?
目前,我可以通过发送一个Ajax调用关闭到的时间,我在数据库中更新需要每个值服务器X量达到这一点,但是这显然是低效的。
我是很新的阿贾克斯所以请原谅我的知识的缺乏。
谢谢你的时间。
答
JSON允许数组以及对象。
可以包括数组作为对象的属性之一(如果那是你所需要的),并把它的服务器。
var answer = {
checklist: {id: 1},
question: {id: questionId },
answer: "testing1",
notes: checkInNotes,
arrayOfQuestionId: [ 1, 2, 3, 4 ]
};
你也可以发送对象,而不只是一个数组:
var otherAnswer = [ object1, object2, ... ];
答
提示:生成混合数据和发布所有它断绝侧。
1.send从客户端的所有请求
2.发送所有混合数据服务器,并进行解析。
WAY1:从服务器
let url='*',ids=[1,2,3];
//生成阵列的paramse。
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);
})
'IDS:questionIds.join( “”)'或者添加为阵列和处理在服务器上 – mplungjan