我想要做的是通过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);
?>
答案 0 :(得分:0)
$searchTerm = $_GET['term'];
$sql = "select * from country_ref_table";
将其添加到$ sql
中 $sql = "select * from country_ref_table where `term` LIKE '%".$searchTerm ."%'";
然后使用这样的数据:
$data=array();
while($row = mysqli_fetch_array($result))
{
$data[]['id'] = $row['country_code'];
$data[]['category'] = $row['country'];
}
echo json_encode($data);
答案 1 :(得分:0)
而不是:
$searchTerm = $_GET['term'];
$sql = "select * from country_ref_table";
您需要在查询中加入$searchTerm
,有点像:
$searchTerm = $_GET['term'];
$sql = "select * from country_ref_table WHERE `columnTerm` LIKE '%".$searchTerm ."%' ";
OR
$sql = "select * from country_ref_table WHERE `columnTerm` = '$searchTerm' ";