多对多Ajax表单(Symfony2表单)

Chr*_*ner 3 symfony

我在玩家和锦标赛之间有mbitodb的多对多关系.

我希望能够立刻为锦标赛添加许多玩家.如果没有ajax,这是微不足道的,但我们拥有数以千计的玩家,因此表单选择变得非常庞大.

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

如果没有,那么标准策略是什么呢?我想我可以大量更改此表单的视图并使用ajax自动完成功能一次添加一个播放器,然后再使用一些代码来逐个删除每个播放器.但是,我真的很想拥有一个可以重复使用的小部件,因为它更干净,效率更高.

我一整天都在玩Select2(类似于jQuery Chosen),我通过ajax添加了许多玩家,但是当我最初加载页面时它不允许我设置已经连接的玩家,所以我不会能够看到谁已经参加锦标赛,并且必须重新输入所有人.

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

Lig*_*art 5

我能够通过$.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)