Jquery php自动完成列表未根据输入进行过滤

时间:2012-02-16 17:08:16

标签: php jquery autocomplete

我有一个输入框,我正在使用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
        });

1 个答案:

答案 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 . '%"

Docs for LIKE here