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的工作絕對沒問題。但我無法獲取文本輸入框
你怎麼能說它工作正常?您可以在鍵入時檢查php腳本是否被調用(檢查開發人員工具,網絡選項卡)。控制檯中的任何腳本錯誤? typeahead.js在什麼地方?如果有錯誤,它可能在那裏。 – GolezTrol
您未選擇輸入元素。使用'$('input [name = typeahead]')'。您的選擇器正在尋找使用** class ** typeahead的輸入。 – Barry
請注意,您的查詢非常不安全。人們可以在框中輸入SQL代碼碎片並破壞腳本或可能損壞數據庫。 – GolezTrol