search.php
$text = $mysqli->$_POST['term'];
$query = "SELECT name FROM males WHERE name LIKE '%" . $text . "%' ORDER BY name ASC";
$result = $mysqli->query($query);
$json = '[';
$first = true;
while($row = $result->fetch_assoc())
{
if (!$first) { $json .= ','; } else { $first = false; }
$json .= '{"value":"'.$row['name'].'"}';
}
$json .= ']';
echo $json;
index.php
1) HTML
<body>
Text: <input type="text" id="autocomplete" />
</body>
2) jQuery
$( "#autocomplete" ).autocomplete({
source: function(request, response) {
$.ajax({ url: "http://localhost/testing/auto/search.php",
data: { term: $("#autocomplete").val()},
dataType: "json",
type: "POST",
success: function(data){
response(data);
}
});
},
minLength: 2
});
当我键入 2 个字母时,即使这两个字母与任何名称都不匹配,它也会为我提供数据库中的所有名称。
这是怎么发生的,我该如何解决?
最佳答案
看起来我的评论起到了答案的作用,因此有了这个答案。
$mysqli->$_POST['term']
是做什么的?我认为你应该有 $text = $_POST['term'];
。这应该有效。
关于php - jquery 自动完成和 mySql 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6302970/