2017-04-06 25 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); 
}) 
相關問題