2016-08-11 4 views
0

私は都市の名前をAjax経由でcomboBox Select2にダウンロードする必要がありますが、それまでは機能していません。インターネット検索の多くの例が、それも理解していない。Ajaxのselect2の例

$(document).ready(function() { 
    var url = "http://localhost:8000/api/city?"; 
    $("#city").select2({ 
     minimumInputLength: 1, 
     ajax: { 
      url: url, 
      dataType: 'json', 
      type: "GET", 
      delay: 500, 
      data: function (term) { 
      return { 
       city: term 
      }; 
     }, 
     results: function (data) { 
      console.log(data); 
      return { 
       results: $.map(data, function (item) { 
        return { 
         text: item.text, 
         id: item.id 
        } 
       }) 
      }; 
     } 
    } 
}); 
}); 

YエステESエルcódigoJSON queのdevuelveマイルservidor詐欺ラconsulta realizada:

[{ "id": 1, "text": "Capital, Córdoba, Argentina" }] 

ダイス "の検索...." のy luegoが

本当に "結果が見つかりません"、ありがとう!

+0

私は私の母国語でこのように思っています:-( – randominstanceOfLivingThing

+0

cud someone translate to english。 – Iceman

+0

"これは私のサーバが最終的な質問を返すjsonです(最後の部分についてはわかりません)" ... "検索中...結果が見つかりません " – Greg

答えて

-1

まず、Select2バージョン4以降を使用している場合は、<select>要素でselect2()を初期化するか、AJAXなどの多くの機能がオフになっていることを確認してください。

Selectセレクトがであなたのサーバーからのフォーマットされた答えが必要になります、 minimumInputLength = 0それは全体のリストを読み込むようになります:

[ 
    {id:1,text:'city1'}, 
    {id:2,text:'city2'}, 
] 

オプション:サーバーから返された応答は次のようになります。http://localhost:8000/api/city?

クリック minimumResultsForSearchで、検索ボックスをselect2リストに表示する必要がある結果の数を制御します。

ajax{data: function(param)}は、あなたがここに戻っすると、あなたは、AJAXサーバーから正常な応答を得たときに呼び出され、あなたの{ajax:url}

ajax{processResults: function (data, status)}に送信され、サーバが理解するものにユーザデータをフォーマットするために呼び出される関数ですdataがあなたのサーバーからの応答になります。これは、dataがselect2のように構成されていることを確認する最後の機会です。あなたがここに戻るのはselect2に送ることです。

希望すると助かります!

関連する問題