我有一个列表,其中包含许多由(MongoDB-)ID标识的条目(100+)。每个条目都在一个html表中,并有一个复选框。当用户现在选择一个组时,如果每个条目都在特定组中,我需要查询服务器。获取会员资格的查询并不重要,但我不能执行100次以上,这太多了。
目前我有获取群组成员资格的PHP代码(发布时间太长)以及javascript代码,只要更改选择就会执行:
$('checkbox[data-type="group"]').each(function(idx, val) {
// get the ID and set it checked/unchecked
});
我的问题是:如何对服务器进行一次性查询,如果条目在所选组中,则检查每个ID?
答案 0 :(得分: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);
}
});
如果这不能回答您的问题,请详细说明您的问题。