使用jQuery Autocomplete搜索多个单词

时间:2010-02-23 23:30:34

标签: jquery autocomplete

我真的很挣jQuery的自动完成插件。我的数据库中有一个大字段,里面有多个单词,用空格分隔:

  

forename姓氏地址邮政编码

我可以获得自动填充功能来搜索单个单词。例如。如果我输入“forename”,我会得到一个输出:

  

forename姓氏地址邮政编码。

但是,如果我输入“姓氏”,我什么也得不到。

同样,邮政编码分为两个单词,例如AB1 2CD,AB2 2CD。如果我输入“AB1”,我可以看到“AB1 2CD”。但是,如果我键入“AB1 2CD”,我会看到两个结果。在Firebug中,似乎在输入空格后触发了新的获取请求。

我选择了多个选项,分隔符为“”。这是如何调用自动完成的代码:

$().ready(function() {  
    $("#autocomplete input#autotext").autocomplete("clientsearchtest.php", {  
        width: 400,   
        multiple: true, 
        minChars: 2,
        cacheLength: 1,
        multipleSeparator: " "
    });  
});   

不仅需要“AB1 2CD”才能工作,我希望自动完成也能在“2cd ab1”,“2cd”,“ab1”“ab cd”或“ab1 2c”时显示结果“AB1 2CD”进入。 这让我发疯,任何帮助都非常感激!

我认为我需要做的是以某种方式将每个间隔的字符串作为不同的变量发送到我的PHP脚本。所以目前整个字符串都以$q的形式发送。我真的需要发送$q1$q2,每个都由空格字符的存在定义。这样我的SQL select语句可以有一个where clientsearch LIKE'%$ q%'和'%$ q2'。

2 个答案:

答案 0 :(得分:1)

正如Raja评论的那样,你应该构建你的响应控制器来处理这个逻辑,而不是修改jQuery,我使用了相同的解决方案并且效果很好。您可能希望进行一些性能测试,并确保LIKE查询不会太重。

答案 1 :(得分:0)

我不知道你是否检查了这个demo page for autocomplete。在那里,您可以看到满足您的不同类型的要求。看看你是否从那里得到任何帮助。