從下面的jQuery代碼我初始化了預輸入插件自動完成僅適用於空間
var users=new Bloodhound({
datumTokenizer:Bloodhound.tokenizers.obj.whitespace('username'),
queryTokenizer:Bloodhound.tokenizers.whitespace,
remote: {
url: 'users.php?query=%QUERY',
wildcard: '%QUERY'
}
});
users.initialize();
$("#SearchCustomer").typeahead({
hint: true,
highlight: true,
minlength: 2,
},{
name: 'users',
display:'username',
source:users.ttAdapter(),
templates: {
suggestion: function (users) {
return '<p><a href="index.php?userid='+users.CustomerId+'" style="color:inherit;text-decoration:none;width:100%">'+users.username+'</a></p>';
}
}
比如我的數據庫是這樣的:
1.Harley
2.Harley戴維森
當我在搜索框中輸入「Har」時,「Harley」僅顯示在建議中。 「Harley Davidson」僅在我在末尾輸入「Harley」時才顯示空格。有人可以建議如何克服這個錯誤?
這是我users.php文件
<?php
header('Content-Type:application/json');
if(!isset($_GET['query']))
{
echo json_encode([]);
exit();
}
$mysqli=new PDO("mysql:host=127.0.0.1;dbname=website","root","");
$users=$mysqli->prepare("SELECT id,username FROM users WHERE username LIKE :query");
$users->execute(['query'=>"{$_GET['query']}%"]);
echo json_encode($users->fetchAll());
?>
我們可以在數據庫查詢發生的地方看到users.php代碼嗎?您是否調試過PHP代碼以確保在搜索框中鍵入的內容是查詢中包含的內容? –
@Cᴏʀʏ我修改了這個問題,幷包含users.php文件 – Dilkush
從url返回的數據是什麼樣的?如果您使用像POSTMan這樣的工具來調用url,它是否工作? – whipdancer