2010-02-23 2 views
3

Я действительно борется с плагином автозаполнения jQuery. У меня есть большое поле в моей базе данных с несколькими словами в нем, разделенных пробелах:Поиск нескольких слов с помощью jQuery Autocomplete

имени фамилии адрес почтового индекс

я могу получить автозаполнения для поиска одного слова. Например. если я набираю «имя», я получаю вывод:

имя-фамилия адрес почтовый индекс.

Однако, если я наберу «фамилия имени», я ничего не получаю.

Аналогично, почтовый индекс разделяется на два слова, например. 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», чтобы работать, я хочу автозаполнения также показать результат «AB1 2CD», когда «2cd АВ1», " 2cd "," ab1 "" ab cd "или" ab1 2c ". Это сводит меня с ума, любая помощь очень ценится!

Я думаю, что мне нужно сделать, так или иначе отправить каждую разнесенную строку как другую переменную в мой сценарий PHP. поэтому в настоящее время вся строка отправляется как $q. Мне действительно нужно отправить $q1, $q2, каждый из которых определяется наличием символа пробела. Таким образом, мой SQL-запрос выбора может иметь whereearchearch LIKE '% $ q%' AND '% $ q2'.

+1

Я не знаком с PHP, но так мы справлялись с сценарием в .Net. Мы использовали аналогичный оператор в SQL и получили набор результатов. Для примера. SELECT Имя от Employee, где Name like '% abc%' Вышеприведенный запрос даст мне все имена с abc в любом месте. Надеюсь, это поможет. – Raja

ответ

0

Я не знаю, проверили ли вы это demo page for autocomplete. Там вы можете увидеть, что выполняются ваши требования. Просто посмотрите, получите ли вы какую-либо помощь оттуда.

1

Как сказал Раджа, вы должны создать свой контроллер ответа для обработки этой логики, а не для изменения jQuery, я использовал то же самое решение, и он отлично работает. Возможно, вы захотите провести тестирование производительности и убедитесь, что запрос LIKE не слишком тяжелый.

Смежные вопросы