我在玩家和锦标赛之间有mbitodb的多对多关系.
我希望能够立刻为锦标赛添加许多玩家.如果没有ajax,这是微不足道的,但我们拥有数以千计的玩家,因此表单选择变得非常庞大.
我们想为此使用ajax.是否可以创建一个小部件(使用js)来正确处理这个问题?如果是这样,有关jquery插件(或其他)使用的任何提示?
如果没有,那么标准策略是什么呢?我想我可以大量更改此表单的视图并使用ajax自动完成功能一次添加一个播放器,然后再使用一些代码来逐个删除每个播放器.但是,我真的很想拥有一个可以重复使用的小部件,因为它更干净,效率更高.
我一整天都在玩Select2(类似于jQuery Chosen),我通过ajax添加了许多玩家,但是当我最初加载页面时它不允许我设置已经连接的玩家,所以我不会能够看到谁已经参加锦标赛,并且必须重新输入所有人.
感谢您对此事的任何意见!我无法通过谷歌找到任何东西.
我能够通过$.ajaxonload函数中的构造函数完成此操作,其中//website/jsonItem是所有项//website/jsonItemUser的json编码列表,并且是附加到用户的所有项的json编码列表.我曾经//保持https/http呼叫之间的一致性.
$(document).ready(function(){
$('.selectitem').select2({
minimumInputLength:0
,multiple: true
,ajax: {
url: "//website/jsonItem"
,dataType: 'jsonp'
,data: function (term, page) {
return {
q: term, // search term
limit: 20,
page: page
};
}
,results: function (data, page) {
var more = (page * 20) < data.total;
return {
results: data.objects, more: more
};
}
}
,initSelection: function(element, callback){
var items=new Array();
$.ajax({
url: "//website/jsonItemUser"
});
callback(items);
}
});
$.ajax({
url: "//website/jsonItemUser"
,dataType: 'jsonp'
,success: function(items, status, ob) {
$('.selectitem').select2('data',items);
}
});
});
Run Code Online (Sandbox Code Playgroud)