2016-07-14 9 views
0

Ich habe zwei Probleme. Im Moment zeigt meine Autocomplete alle 600 Ergebnisse an, egal was ich eintippe, verengt sich nie auf weniger Ergebnisse. Ich brauche es auch, um nur die nächsten 5 Ergebnisse anzuzeigen, die zu dem passen, was ich gerade tippe. Irgendwelche Ideen, wie man das verbessert.Wie verwende ich JQuery Autocomplete, um Ergebnisse einzugrenzen (Es zeigt alle Ergebnisse)

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> 

Antwort

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

So würde ich muss nur mit auto_complete.php myarray ersetzen? – Ryan

+0

Sie können entweder alle Ergebnisse und results.slice (0, 5) erhalten; auf Client-Seite oder immer die ersten 5 von innen auto_complete.php zurückgeben. http://php.net/manual/en/function.array-slice.php. mit echo json_encode (array_slice ($ json, 5)); Ich bevorzuge die zweite, wenn die Ergebnismenge sehr groß ist. – SGalea