大家好。有一个输入
<input type="text" name="incoming_sender" id="incoming_sender" class="form-control">
有一个JS代码
<script type="text/javascript">
$(document).ready(function() {
$( "#incoming_sender" ).autocomplete({
source: 'autocomplete.php'
});
});
</script>
还有一个 PHP 文件autocomplete.php,它生成具有以下内容的自动完成输入选项:
require_once ('includes/connect.php') ;
$result = mysqli_query($con,"SELECT * FROM usertbl") or die(mysqli_error());
while($row = mysqli_fetch_assoc( $result )) {
$data[] = $row['full_name'];
}
echo json_encode($data);
带有发件人姓名的自动完成输入选项取自数据库。但问题是,当用户开始在输入中输入字母或符号时,数据库中的所有数据都会显示在那里,而不仅仅是那些与输入字符匹配的数据。例如,名称“Sergey”、“Aleksey”被从数据库中提取出来。如果您输入了一些不在名称中的数字、标点符号或字母,它仍会显示所有名称。如何解决?
PS:此选项可以正常工作:
<script>
$(document).ready(function() {
$("#incoming_sender").autocomplete({
source: [
"Сергей",
"Алексей",
"Игорь",
],
minLength: 1
});
});
</script>
在您的文件
autocomplete.php中,请求应考虑用户已经输入的内容: