3

プレーヤーとトーナメントの間にmongodbで多対多の関係があります。

一度に多くのプレイヤーをトーナメントに追加できるようにしたいと考えています。これは ajax なしで行うのは簡単ですが、何千ものプレーヤーの DB があるため、フォームの選択が膨大になります。

これには ajax を使用します。これを適切に処理するために (js を使用して) 単一のウィジェットを作成することは可能ですか? もしそうなら、どの jquery プラグイン (またはその他) を使用するかについてのヒントはありますか?

そうでない場合、これを行うための標準的な戦略は何ですか? このフォームのビューを大幅に変更し、ajax オートコンプリートを使用して一度に 1 人のプレーヤーを追加し、さらにコードを追加して各プレーヤーを 1 つずつ削除することができると思います。ただし、再利用できる単一のウィジェットが非常にクリーンで、はるかに効率的であるように思われるため、本当に望んでいます。

私は一日中Select2で遊んでおり(jQuery Chosenに似ています)、ajaxを介して多くのプレーヤーを追加するために機能していますが、ページを最初にロードするときにすでに接続されているプレーヤーを設定できないため、誰がすでにトーナメントに参加しているかを確認でき、全員を再入力する必要があります。

この件についてご意見をお寄せいただきありがとうございます。Google経由で何も見つかりません。

4

1 に答える 1

5

$.ajaxこれは、onload 関数内のコンストラクターの後に行うことで実現できました。//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);
    }
  });
});
于 2012-11-14T18:15:45.193 に答える