2016-07-14 3 views
0

2つの問題があります。現在、私のオートコンプリートでは、入力した内容が決して少ない結果に絞られることなく、600件の結果がすべて表示されています。私が入力したものに最も近い5つの結果だけを表示する必要もあります。これを改善する方法に関するアイデア。JQueryオートコンプリートを使用して結果を絞り込む方法(すべての結果を表示しています)

PHP

<?php 
include('inc/connections.php'); 




    $sql = "select top 5 a.item_desc_1, b.item_no from bmprdstr_sql b, imitmidx_sql a 
        where a.item_no=b.comp_item_no and b.user_def_fld = 'x' 
        AND b.item_no like '%{$_POST['auto_me']}%' 
"; 


    $query = odbc_exec($conn, $sql); 
    $json = array(); 
    while ($row = odbc_fetch_array($query)) { 

     $json[] = $row['item_no']; 

    } 
    echo json_encode($json); 

jQueryのHTML

<html> 
<head> 
    <title> 
     test 
    </title> 
    <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> 
    <script src="//code.jquery.com/jquery-1.10.2.js"></script> 
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 

<script> 
    $(document).ready(function(){ 
     $(function() { 
      $("#auto_me").autocomplete({ 
       source: 'auto_complete.php', 
       autoFocus:true 

      }); 
     }); 
    }); 


</script> 
</head> 




<body> 
<form id="auto"> 
<input type="text" id="auto_me" name="auto_me"/> 
    </form> 
</body> 
</html> 

答えて

0
$("#auto_me").autocomplete({ 
    source: function(request, response) { 
     var results = $.ui.autocomplete.filter(myarray, request.term); 
     response(results.slice(0, 10)); 
    } 
}); 

Limit results in jQuery UI Autocomplete

+0

だから、僕はauto_complete.phpとmyarrayのを交換する必要があるでしょうか? – Ryan

+0

すべての結果とresults.slice(0、5)を取得することができます。クライアント側で、またはauto_complete.phpの中から常に最初の5個を返します。 http://php.net/manual/en/function.array-slice.php。 echo json_encode(array_slice($ json、5));を使用します。結果セットが非常に大きい場合、私は2番目を好む。 – SGalea

関連する問題