Javascript jquery自动完成:用于筛选lookupFilter()中显示的结果的serviceUrl
我使用库作为输入字段,但不是将本地数据作为建议的目标,而是使用Javascript jquery自动完成:用于筛选lookupFilter()中显示的结果的serviceUrl,javascript,php,mysql,jquery-autocomplete,Javascript,Php,Mysql,Jquery Autocomplete,我使用库作为输入字段,但不是将本地数据作为建议的目标,而是使用serviceUrl,它为脚本提供了一个包含文件列表的JSON文件。在库作者提供的(第30-47行)中,我将lookup:countriesArray,替换为serviceUrl:'retrieve\u foreign\u countries.php', <?php // retrieve_foreign_countries.php include 'init_db.php'; include 'functions.php';
serviceUrl
,它为脚本提供了一个包含文件列表的JSON文件。在库作者提供的(第30-47行)中,我将lookup:countriesArray,
替换为serviceUrl:'retrieve\u foreign\u countries.php',
<?php // retrieve_foreign_countries.php
include 'init_db.php';
include 'functions.php';
prepareForeignCountriesJson($db);
?>
输入某些文本时的查找工作正常,但不会根据输入文本过滤结果,而是提供整个国家列表。换句话说,功能(在at第34-37行中)
正如图书馆作者()所解释的那样,从那时起就不起作用了
使用serviceUrl选项时,服务器负责筛选
结果
然后,我从哪里开始使用我的
serviceUrl
获得加载本地数据时的相同结果?我是否需要在我的prepareForeignCountriesJson()
中筛选查找数据?但是调用了多少次prepareForeignCountriesJson()
?每次用户在字段中输入某些字符时?可能您的SELECT缺少WHERE子句:
$sql = "SELECT ... WHERE country_name LIKE CONCAT('$prefix', '%') ORDER BY ...";
(请注意,我改为双引号,以便可以“插入”$prefix。)
lookupFilter: function(suggestion, originalQuery, queryLowerCase) {
var re = new RegExp('\\b' + $.Autocomplete.utils.escapeRegExChars(queryLowerCase), 'gi');
return re.test(suggestion.value);
},
$sql = "SELECT ... WHERE country_name LIKE CONCAT('$prefix', '%') ORDER BY ...";