2017-04-06 28 views
0

目前我打电话AJAX和张贴下列对象数据的最有效的方法:从数组中提取值,并通过一个Ajax POST调用

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

在服务器端,这将更新的答案和笔记在数据库中找到id为1的问题和清单。

现在说我有questionId的数组,我需要传递给阿贾克斯在上面的对象问题财产的一部分。在ajax中实现这个最好的方法是什么?

目前,我可以通过发送一个Ajax调用关闭到的时间,我在数据库中更新需要每个值服务器X量达到这一点,但是这显然是低效的。

我是很新的阿贾克斯所以请原谅我的知识的缺乏。

谢谢你的时间。

+1

'IDS:questionIds.join( “”)'或者添加为阵列和处理在服务器上 – mplungjan

回答

0

JSON允许数组以及对象。

可以包括数组作为对象的属性之一(如果那是你所需要的),并把它的服务器。

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

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

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

提示:生成混合数据和发布所有它断绝侧。

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); 
}) 
相关问题