我的index.html文件
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Demo</title>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/minified/jquery-ui.min.css" type="text/css" />
</head>
<body>
<form action='' method='post'>
<p><label>Country:</label><input type='text' name='country' value='' class='auto'></p>
</form>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"> </script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.1/jquery-ui.min.js"></script>
<script type="text/javascript">
$(function() {
//autocomplete
$(".auto").autocomplete({
source: "search.php",
minLength: 1
});
});
</script>
</body>
</html>
我的search.php文件
<?php
$con=mysqli_connect("localhost","root","something","hindi_test");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_set_charset ( $con , 'utf8' );
$result = mysqli_query($con,"SELECT A FROM data ");
while($row = $result->fetch_object()){
$user_arr[] = $row->A;
}
echo json_encode($user_arr);
mysqli_close($con);
?>
此代码工作正常。它显示了&#39; A&#39;的所有数据成员。柱。现在我想在用户输入数据的基础上显示自动完成功能,以便在输入更多字符时过滤数据。如何在我的search.php文件中执行此操作?
答案 0 :(得分:1)
根据autocomplete jquery documentation
添加了一个查询字符串,其中包含一个术语字段,服务器端脚本应使用该字段来过滤结果。例如,如果source选项设置为“http://example.com”并且用户键入foo,则会向http://example.com?term=foo发出GET请求
您可以在服务器端读取查询字符串,并使用de term value
过滤查询您的查询可能是这样的:
$result = mysqli_query($con,"SELECT A FROM data WHERE A LIKE %". $_GET["term"] ."%");
当然你必须清理$ _GET [“term”]以防止SQL注入攻击。
答案 1 :(得分:0)
if(isset($_GET['term']))
{
$result = mysqli_query($con,"SELECT A FROM data WHERE A LIKE %". $_GET["term"] ."%");
}