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


姓氏姓氏地址邮政编码


我可以获取自动完成功能来搜索单个单词。例如。如果输入“ forename”,则输出为:


姓氏姓氏地址邮政编码。


但是,如果键入“ forename surname”,我什么也不会得到。

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

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

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


当需要输入“ 2cd ab1”,“ 2cd”,“ ab1”,“ ab cd”或“ ab1 2c”时,我不仅仅需要“ AB1 2CD”工作,我还希望自动完成功能还显示结果“ AB1 2CD”。
这让我发疯,任何帮助我们不胜感激!

我认为我需要做的是以某种方式将每个隔开的字符串作为不同的变量发送到我的PHP脚本。因此,当前整个字符串都以$q的形式发送。我真的需要发送$q1$q2,每个都由空格字符定义。这样,我的SQL select语句可以具有一个clientsearch类似于'%$ q%'和'%$ q2'的位置。

最佳答案

正如Raja所说,您应该构建响应控制器来处理此逻辑,而不是修改jQuery,我使用了相同的解决方案,并且效果很好。您可能需要进行一些性能测试,并确保LIKE查询不太重。

09-25 17:02