0

ユーザーが3文字を入力した後、Ajax検索を行うにはどうすればよいですか?私はJavaScriptの専門家ではありませんが、これまでのHTMLファイルは次のとおりです。

<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>

現時点では、バックスペースボタンが押されたときに検索が呼び出されます(文字のない一致検索があるため、すべてのデータベースエントリが表示されます)。

前もって感謝します!よろしく。

4

2 に答える 2

2

まず、使用しているプラ​​グインをお知らせいただく必要があります。使用している場合は、これを変更してください。

process: function(terms) {

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

ただし、サーバー側でもこれを制限する必要があります。そうしないと、スクリプトに直接アクセスしてすべてのエントリを表示できます。phpこれは、ファイルの先頭で次のように実行できます。

if(strlen(trim($_GET['q'])) < 3) return; // only basic, would need more checks
于 2012-11-28T17:57:08.913 に答える
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'
  });
}
于 2012-11-28T17:50:36.597 に答える