使用Jquery自动完成,远程源进行过滤

时间:2015-11-10 08:03:44

标签: php jquery autocomplete

所以,我已经在我的输入字段中实现了“Jquery Autocomplete”。

HTML

<input type="text" id="objekt_nr">

JS

$(function() {
    $( "#objekt_nr" ).autocomplete({
        source: 'file.php',
        minLength: 2,
    });
});

在谷歌上阅读(文档中没有信息)之后,我明白你需要在“服务器端”php脚本中安装过滤器。我在那里使用了一些过滤。

PHP

$term = trim(strip_tags($_GET['term']));
$query = "SELECT DISTINCT column1 as value FROM table WHERE column1 LIKE '".$term."%'";

我的问题是“捕获”只是过滤了第一个或第二个特征 当我打字时,错过拟合字符不会过滤掉。

示例:我输入2133 ..不,我也可以看到:2135 ..
我怎么解决这个问题呢? 我需要自己编写on keyup, function吗? 因为我在文档中找不到任何相关内容。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望它根据部分匹配进行过滤(例如,当您输入2133时,显示221213的结果,和2133)。

假设以上情况属实,您不需要在jQuery中执行任何操作 - 完全在PHP中。因此,修改上面的代码:

$term = trim(strip_tags($_GET['term']));
for($i=1; $i<=strlen($term); $i++) {
  $test_term = substr($term, 0, $i);
  $query = "SELECT DISTINCT column1 as value FROM table 
             WHERE column1 LIKE '".$test_term."%'";
}