2014-10-31 37 views
2

因此,我已經放在一起搜索功能,它會在您鍵入並在文本字段中顯示結果時進行搜索,但現在問題是它不會讓我輕鬆刪除,並且「思考' 太快。關於如何減緩這種情況的任何想法?拖延php中的關鍵筆畫mysql搜索

<script> 
$(document).ready 
(function() 
{ 
    $("#tag").keyup 
    (function() 
     { 
      var tag= $(this).val(); 
      if(tag!='') 
      { 
       $.ajax(
       { 
        type: "GET", 
        url: "autocomplete.php", 
        data: "q=" + tag, 
        cache: false, 
        success: function(result) 
        { 
         $("#tag").val(result); 
        } 
       } 
       ); 
      } 
      return false; 
     } 
    ); 
} 
); 
</script> 

,然後這個

<?php 
$q_incoming=$_GET['q']; 
//$my_data=mysql_real_escape_string($q_incoming); 
$mysqli=mysqli_connect('localhost','XXXXXXX','XXXXXXXX','XXXXX') or die("Database Error"); 
$sql = "SELECT auto_complete_suggestions FROM auto_complete WHERE auto_complete_suggestions LIKE '$q_incoming%' LIMIT 0,1"; 

$result = mysqli_query($mysqli,$sql) or die(mysqli_error()); 

if($result) 
{ 
    while($row=mysqli_fetch_array($result)) 
    { 
    echo $row['auto_complete_suggestions']."\n"; 
    } 
} 
?> 

我認爲正在發生的事情是,如果我鍵入「他」它會提示「幫助」,但是當我刪除了「P」這是怎麼回事,因爲再次提示它有「hel」來搜索。關於如何允許刪除以及減慢查詢速度的任何想法,以便您可以以合理的打字速度鍵入一封信?我可以使用定時功能,或者告訴它在刪除後忽略它?

謝謝!

+1

本問答可能有助於http://stackoverflow.com/q/18965768/和http://stackoverflow.com/q/4542863/ – 2014-10-31 16:02:41

+0

使用'mysqli'時,您應該使用參數化查詢和['bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php)將用戶數據添加到您的查詢。 **不要**使用字符串插值來實現此目的,因爲您將創建嚴重的[SQL注入漏洞](http://bobby-tables.com/)。 – tadman 2014-10-31 16:10:15

+0

JQuery Autocomplete具有您正在尋找的**精確**延遲選項。如果您反對使用完整的JQuery UI庫,那麼通過源代碼並弄清楚它們是如何實現的。 – MonkeyZeus 2014-10-31 16:12:22

回答