2015-06-06 82 views
0

這裏的HTML和JavaScript代碼:阿賈克斯實況搜索框

$('document').ready(function(){ 
 
    $('input.typeahead').typeahead({ 
 
     name: 'typeahead', 
 
     remote:'livesearch.php?key=%QUERY', 
 
     limit : 10 
 
    }); 
 
}); 
 
<html> 
 
    <head> 
 
    <title>Ajax Search Box using PHP and MySQL</title> 
 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">  </script> 
 
    <script src="typeahead.js"></script> 
 
    </head> 
 
    <body> 
 
    <input type="text" name="typeahead"> 
 
</body> 
 
</html>

PHP文件包含:

$key=$_GET['key']; 
$array = array(); 
$query = $db->query(" SELECT * from product WHERE ProductName LIKE '%{$key}%' ") or die (mysql_error()); 
while($row = $query->fetch()) 
{ 
$array[] = $row['ProductName']; 
} 
echo json_encode($array); 

PHP的工作絕對沒問題。但我無法獲取文本輸入框

+0

你怎麼能說它工作正常?您可以在鍵入時檢查php腳本是否被調用(檢查開發人員工具,網絡選項卡)。控制檯中的任何腳本錯誤? typeahead.js在什麼地方?如果有錯誤,它可能在那裏。 – GolezTrol

+2

您未選擇輸入元素。使用'$('input [name = typeahead]')'。您的選擇器正在尋找使用** class ** typeahead的輸入。 – Barry

+0

請注意,您的查詢非常不安全。人們可以在框中輸入SQL代碼碎片並破壞腳本或可能損壞數據庫。 – GolezTrol

回答

1

使用

$('input[name=typeahead]') 

的預輸入功能適用於輸入元素。