我有一个输入框,我正在使用Jquery自动完成功能。当我输入输入框时,列表会正确显示16个第一个“值”。当我单击其中一个值时,输入框将填充该值。所以,到目前为止一切都还好。我的问题如下。该列表不会根据我的输入进行过滤。该列表保持静态。我不懂为什么。希望有人能提供帮助。提前感谢您的回复。干杯。马克。
我的HTML:
<input type="text" id="moi"/>
我的PHP:
<?php
header('Content-Type: text/html; charset=utf-8');
require("../inc/connect.inc.php");
mysql_set_charset('utf8');
$result = mysql_query("SELECT * FROM search_loc_test");
$row=mysql_fetch_assoc($result);
$return = array();
while($row=mysql_fetch_assoc($result)){
array_push($return,array('label'=>$row['seaerch_loc'],'value'=>$row['seaerch_loc']));}
echo(json_encode($return));
?>
我的JS:
$( "#moi" ).autocomplete({
source: "php/search_loc.php",
minLength: 2
});
答案 0 :(得分:2)
您需要更新SQL查询以处理自动填充发送的term
。
当您的来源被调用(通过GET)时,将按以下方式调用它:
php/search_loc.php?term=bb
因此,在您的PHP脚本中,您需要使用搜索词并使用它来过滤来自DB的结果...类似于:
$term = mysql_real_escape_string($_GET['term']);
$query = 'SELECT * FROM search_loc_test WHERE <fieldname> like "' . $term . '%"