1

我真的在为 jQuery 的自动完成插件而苦苦挣扎。我的数据库中有一个大字段,其中包含多个单词,以空格分隔:

Jumerah Lakes Towers

我可以让自动完成来搜索一个单词。例如,如果我输入“J”,它会给我上面的字符串“Jumerah Lakes Towers”

但是,如果我键入第二个字符,例如“L”,它会显示所有具有第二个单词的单词,并以 L 开头,如下所示:

Jumerah Lakes

等等...

简而言之,我想将第一个字符与第一个单词的开头相匹配,第二个字符与第二个单词的开头相匹配,然后……

 $("#txtrefid").autocomplete("autocomplete.php", {
    selectFirst: true
});

我的 sql 查询中的WHERE条件是LIKE '%$txt%'

4

4 回答 4

0

For your Informations, i did it like this

$string = 'HL';
$chars = str_split($string); //split the string into separate characters

$regexp = null; //string for the regexpansion

 foreach($chars as $char) //loop trough the characters
  $regexp .= $char . '[a-z0-9]+ ';

  $regexp = '^' . rtrim($regexp, ' ') . '$'; 
  "WHERE field REGEXP '" . $regexp . "'";
于 2013-06-27T11:30:27.290 回答
0

这个插件并不是真的按照你的意愿设计的。

我建议创建两个不同的自动完成字段。然后,您需要在第一个自动完成选择上链接第二个自动完成内容。

通过这种方式,用户将能够执行快速研究,而无需根据需要滚动长建议列表。

于 2013-06-27T08:07:28.767 回答
0
$search = $_REQUEST['search'];
$search = str_split($search, 1);
$search = '' . implode('|', $search)  . '';

SELECT ... WHERE `lookup` REGEXP '$search'
于 2013-06-27T11:55:34.350 回答
0
$search = $_REQUEST['search'];
$search = str_split($search, 1);
$search = ' % ' . implode('% ', $search)  . '%';

SELECT ... WHERE `lookup` LIKE '$search'
于 2013-06-27T08:15:40.950 回答