2016-08-11 2 views
0

아약스를 통해 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ódigo JSON 케 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와 같은 그의 기능 중 많은 부분이 꺼집니다.

선택 2가에서 서버에서 형식의 대답해야합니다 : 그것은 전체 목록을로드 할 것, 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로 전송하는 것입니다.

희망 하시겠습니까?