2016-08-11 46 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 
        } 
       }) 
      }; 
     } 
    } 
}); 
}); 

Ÿ埃斯特ES ELcódigoJSON闕devuelve英里servidor CON LA CONSULTA realizada:

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

骰子 「搜索...」 Y luego 「沒有找到結果」

真的,謝謝!

+0

我用我的母語錯過SO :-( – randominstanceOfLivingThing

+0

cud someone translate to english。 – Iceman

+0

「這是我的服務器返回的JSON結果查詢(不知道最後一部分)」...「它說正在搜索...然後找不到結果「 – Greg

回答

-1

首先,如果您使用的是Select2版本4+,請確保在<select>元素上初始化select2(),否則他的許多功能(如AJAX)都將被關閉。

選擇二將需要從你的服務器在格式化回答:由服務器返回的http://localhost:8000/api/city?

響應應該是這樣的:

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

選項: minimumInputLength = 0,將使其加載整個列表點擊 minimumResultsForSearch,控制您需要將搜索框顯示到select2列表中的結果數量。

ajax{data: function(param)}是叫格式化用戶數據成你的服務器會明白的功能,你回到這裏什麼是發送到您的{ajax:url}

ajax{processResults: function (data, status)},當你的Ajax了從服務器成功響應這就是所謂的, data將是您服務器的響應,這是您必須確保data像select2需求一樣被格式化的最後機會,請參閱本文頂部。你在這裏返回的是發送到select2。

希望它有幫助!