2012-11-28 2 views
0

사용자가 3자를 입력 한 후 Ajax 검색을 수행하는 방법은 어떨까요? 나는 자바 스크립트의 해당 전문가가 아니지만, 여기 내 HTML 파일은 지금까지의 :Ajax에서 3 자 이상으로 검색

<form> 
<input type="text" id="searchField" name="searchField" placeholder="..."> 
</form> 

<script> 
    $('#searchField').searchbox({ 
    url: 'components/search_ajax.php', 
    param: 'q', 
    dom_id: '#searchResult', 
    delay: 0, 
    loading_css: '#spinner' 
    }); 
</script> 

검색이 때문에 표시되는 다음 (백 스페이스 버튼을 누르면 바로 그 때 내 데이터베이스 항목을 모두 호출되는 순간이 문자가없는 성냥 검색입니다.)

미리 감사드립니다. 감사합니다.

+0

어떤 플러그인을 사용하고 있습니까? – Prisoner

+0

@doniyor tipp에 감사드립니다! –

답변

0

을 첫째로, 당신은 우리가 당신이 사용하고있는 플러그인 알 수 있도록해야합니다, 나는 그것을 this입니다 느낌이있다,이 경우 변경 :

process: function(terms) { 

process: function(terms) { 
    if(terms.length < 3) return; 

그러나 당신은 또한 그렇지 않으면 난 그냥 당신의 SCR로 바로 이동할 수 있으며, 서버 측에서이를 제한해야 모든 항목을 볼 수 있습니다. 다음과 함께 php 파일의 상단에서 수행 할 수 있습니다.

if(strlen(trim($_GET['q'])) < 3) return; // only basic, would need more checks 
+0

당신의 느낌이 옳았습니다. 그리고 귀하의 솔루션은 잘 작동합니다 (양쪽, 자바 스크립트 및 PHP 파일). 감사!! –

1

이 작업을 수행 :

$('#searchField').change(function() { 
var value = $(this).val(); 
if(value.length>= 3){ 
    ajax_search(); 
} 

}); 

function ajax_search(){ 
    $('#searchField').searchbox({ 
    url: 'components/search_ajax.php', 
    param: 'q', 
    dom_id: '#searchResult', 
    delay: 0, 
    loading_css: '#spinner' 
    }); 
} 
+0

이것은 잘못되었습니다. '$ ('# searchField'). searchbox()'는 입력을 변경할 때마다'searchField'에서 초기화됩니다. – Prisoner

+0

그가 필요한 것은 입력 길이에 따라 검색을 시작하는 것입니다. ''searchbox()''도 여기에 초기화되지만, 사용자가 길이 3의 입력을 한 후에 만 ​​그는 그가 사용하고있는 것을 언급하지 않는다. 내가 준 것은 플러그인에 관계없이 간단한 코드이다. – doniyor

+0

네, 이해합니다. 그,하지만 만약 당신이'searchbox()'를 다시 초기화하면 나쁜 시간을 갖게 될 것입니다. mmmkay – Prisoner

관련 문제