从下面的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