2

첫 글자를 입력 할 때 자동 완성이 열리지 만 다른 글자를 입력하거나 필터링하지 않는 두 글자는 동일하게 유지됩니다.jQuery 자동 완성이 제대로 작동하지 않습니다.

첫 번째 문자 일지라도 웹 서비스에서 오는 것과 같이 필터없이 입력 된 모든 항목에 대해 목록 열기가 동일합니다. 여기

$(function() { 
    $('#to').autocomplete({ 
    source: 'json/searchobjects.php', 
      minLength: 1, 
      select: function(event, ui) { 
       globalDest = ui.item.latlng; 
      } 
    }); 
}); 

는 JSON 객체입니다 :

[ 
{ 
label: "label-1", 
value: "val-1" 
}, 
{ 
label: "label-2", 
value: "val-2" 
} 
] 

그 뭔가를 놓친 거지 보이는

여기 내 코드입니다.

도움을 주셔서 감사합니다.

+0

가'이다 select * from table where Label='%$_GET["term"]' 또는 무언가를 사용하여 'JSON/searchobjects.php를 필터링하기 위해 'json/searchobjects.php?term=TERM'에 요청 PARAM로 term을 가진

 source: function (request, response) { jQuery.getJSON(u, { term: request.term*, json: 'yep'*/ }).done(function (_result2) { //alert(_result2[0].Label) response($.map(_result2, function (item) { return { label: item.Label, value: item.Value, id: item.Value } })); }).fail(function() { alert('fail'); }) .error(function() { alert('error'); }); } 

을 다음과 같이하지만, 그것을 사용하십시오 ''json 배열을 돌려 주겠습니까? – Bellash

+0

예 .. 첫 번째 문자가 입력되면 목록이 내려갑니다. – Fahad

+0

브라우저 콘솔에 오류가 있습니까? – melancia

답변

2

저는이 문제를 전에 살았습니다. 결과를 제공하는 PHP 스크립트에서 jQuery 자동 완성 스크립트가 전달하는 값을 기준으로 필터링해야합니다. 이 필터에는 $ _GET [ 'term']을 사용하십시오. 자동 완성 용도로 사용됩니다.

jQuery 자동 완성 플러그인이 "term"을 변수로 사용하여 스크립트에 GET 요청을 자동으로 보내고 있으며이 설정을 구성 할 수 없다는 것을 알고 있습니다.

사용자가 신경 쓰지 않는 많은 결과를 얻으므로 필요한 문자 수를 1보다 크게 늘릴 수 있습니다. 나는 세 문자가 종종 속도와 유용성 사이의 훌륭한 균형이라는 것을 발견했다.

+0

와우! 놀라운 그 ... 감사합니다 @ user1647719 – Fahad

+0

도와 드리겠습니다. 정말 쉽지만, 같은 문제를 풀기 전에 시간을 보냈습니다. – osuddeth

1

편집 내용에 따르면 json은 ["el1","el2",...,"el3"]이어야하며 [{},{},...] 유형을 유지해야하는 경우 필요합니다. 당신이 당신의 개체 목록을 사용해야 할 경우 서버 sidely

+1

다른 답변이 완료되었습니다. 이것은 괜찮아 보이지만, 나는 많이 변해야한다. 그리고 JSON은 괜찮습니다. 레이블이 표시됩니다 ... – Fahad

관련 문제