2014-04-25 53 views
0

我有一個列表,其中包含大量由(MongoDB-)ID標識的條目(100+)。每個條目都在一個html表格中並有一個複選框。當用戶現在選擇一個組時,如果每個條目都在特定組中,我需要查詢服務器。獲取成員資格的查詢不會很重,但我無法執行它超過100次,這是太多的負載。jQuery - 從PHP到JavaScript + jQuery的ID傳輸數據

目前,我有用於獲取組成員(太長髮布)下面的JavaScript代碼,這是每當選擇改變執行PHP代碼:

$('checkbox[data-type="group"]').each(function(idx, val) { 
    // get the ID and set it checked/unchecked 
}); 

我的問題是:我如何可以查詢performantly服務器一次,然後檢查每個ID是否條目在選定的組中?

回答

1

你的問題是有點難以理解,但我認爲你應該發表一個JSON清單,並張貼在一個查詢和處理迭代服務器端,像這樣:

id_list = {}; 

$('checkbox[data-type="group"]').each(function(idx, val) { 
    the_id = //get the id into a variable somehow; 
    id_list[the_id] = val; 
}); 

$.ajax({ 
    url: "some url", 
    dataType: "json", 
    type: "post", 
    data:id_list 
}).done(function(data) { 
//using returned data, set each to check/unchecked 

//assuming that the returned data had format of id:boolean, and the boolean defines whether it should be checked (e.g. {1: true, 2: false, 3: false} ) 
$.each(data, function(index,value) { 
    if (value == true) { 
    $('checkbox#'+index).attr('checked',true); 
    } else { 
    $('checkbox#'+index).attr('checked',false); 
    } 
}); 

如果沒有按回答你的問題,然後請更詳細地重新提出你的問題。

+0

問題是關於如何從服務器到JS獲取id-> in_group。解決這個問題,謝謝! – Sebb

相關問題