我想要做的是通过jQueryUI的功能使用自动完成分类结果 . 经过一些谷歌搜索后,我发现它有一个内置函数(http://jqueryui.com/demos/autocomplete/#categories),但该示例仅适用于本地数据源(javascript中的数组) . 我正在处理远程数据源 . 我的代码是
<script>
$( function() {
$.widget("custom.catcomplete", $.ui.autocomplete, {
_renderMenu: function(ul, items) {
var self = this,
currentCategory = "";
$.each(items, function(index, item) {
if (item.category != currentCategory) {
ul.append("<li class='ui-autocomplete-category'>" + item.category + "</li>");
currentCategory = item.category;
}
self._renderItem(ul, item);
});
}
});
$( "#search" ).catcomplete({
delay:0,
source: "search.php",
select: function(event, ui){
alert(ui.item.label);
}
});
} );
</script>
</head>
<body>
<label for="search">Search: </label>
<input id="search">
</body>
这是 search.php
<?php
$conn = mysqli_connect("localhost","root","","test") or die(mysqli_error());
$searchTerm = $_GET['term'];
$sql = "select * from country_ref_table where country_code LIKE '%".$searchTerm."%' ORDER BY country_code ASC";
$result = mysqli_query($conn,$sql) or die(mysqli_error($conn));
$data = [];
while($row = mysqli_fetch_array($result))
{
$data[] = $row['country_code'];
$data[] = $row['country'];
}
echo json_encode($data);
?>
2 回答
代替:
您需要在查询中包含
$searchTerm
,有点像:要么
在$ sql中添加它
然后使用这样的数据: