3

我在 mongodb 中的 Players 和 Tournaments 之间有多对多的关系。

我希望能够一次将许多玩家添加到锦标赛中。这在没有 ajax 的情况下是微不足道的,但是我们有一个包含数千名玩家的数据库,因此表单选择变得很大。

我们想为此使用ajax。是否可以创建一个小部件(使用 js)来正确处理这个问题?如果是这样,关于使用什么 jquery 插件(或其他)的任何提示?

如果不是,那么执行此操作的标准策略是什么?我想我可以大量更改此表单的视图并使用 ajax 自动完成来一次添加一个玩家,然后使用更多代码一次删除每个玩家。但是,我真的很想拥有一个可以重复使用的小部件,因为它非常干净,而且看起来效率更高。

我整天都在玩Select2(类似于 jQuery Chosen),我让它通过 ajax 添加许多播放器,但它不允许我在最初加载页面时设置已经连接的播放器,所以我不会能够看到谁已经参加了比赛,并且必须重新输入每个人。

感谢您对此事的任何意见!我无法通过谷歌找到任何东西。

4

1 回答 1

5

我能够通过$.ajax在 onload 函数中的构造函数之后完成此操作,其中//website/jsonItem是所有项目的 json 编码列表,并且//website/jsonItemUser是附加到用户的所有项目的 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);
    }
  });
});
于 2012-11-14T18:15:45.193 回答