我正在尝试使用JSON
来建议mysql
中php
数据库中的搜索项目,但是当我在输入框中输入任何内容时,数据库中的所有结果都会显示,并且没有根据输入文本进行细化。
这是我的html / php UI页面:
<!-- Start of content -->
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
$(function() {
$( "#searchText" ).autocomplete({
source: 'includes/functions/json_search.php',
minLength:'2'
});
});
</script>
<div class="ui-widget">
<label for="searchText">Search the menu: </label>
<input id="searchText" name="searchText">
</div>
这是我的php:
<?php
include_once ("../../config/init.php");
//get search term
$searchTerm = $_GET['searchText'];
//get matched data from menu table
$query = $connection->query("SELECT * FROM menu WHERE name LIKE '%".$searchTerm."%' ORDER BY name ASC");
while ($row = $query->fetch_assoc()) {
$data[] = $row['name'];
}
//return json data
echo json_encode($data);
?>
任何人都可以建议为什么它不会改进结果?感谢
答案 0 :(得分:1)
//get search term
$searchTerm = $_GET['searchText'];
应该是:
$searchTerm = $_GET['term'];
自动完成插件不会过滤结果,而是添加一个带有术语字段的查询字符串,服务器端脚本应使用该字段来过滤结果。