Доработать скрипт JS живого поиска на сайте

  • Опубликовано 3 года назад
  • Просмотры 4
  • Закончить проект

Описание

Здравствуйте !
На сайте есть живой поиск , работает он следующим образом :

при вводе в строку поиска (от 3х символов) из базы подгружается список (например 100 элементов) ,
при дальнейшем вводе – подгрузки из базы нет, выборка ложится на JS .
Но тут есть один минус .. – при вводе второго слова оно должно идти строго по порядку из списка .. Это сильно затрудняет
поиск. Вот пример того как работает поиск сейчас :

1) вводим в строку "пет"
2) выпадает список:

петля накладная
петля накладная большая
петля полунакладная
петля полунакладная
петля вклданая
петля вкладная большая

и тд..

3) если далее поставить пробел , то скрипт JS весь список скрывает , так как считает что "пет" это целое слово.
4) если же я допишу полностью "петля", затем поставлю пробел, вроде бы все хрошо, но нет !
если далее начать писать слово которое идет не попорядку, например "большая", то скрипт снова не видит совпадения.

----------------
Что необходимо:

Если отталкиваться от выше указанного списка, то неообходиом сделать так, что бы по
запросу "пет больш" или "пет накл" – js скрипт выдавал совпадающий список даже по части слова (начиная сначала слова)
и вне зависимости от того на каком месте это слово (первое, второе или дальше) .

Проще говоря – поиск нужен не строгий как сейчас.
Подозреваю, что решение простое, но опыта не хватает .. (

Сайт на коротором производится доработка : krona27.ru/

Пример того что нужно :
technopoint.ru/catalog/17...
Слева внизу есть фильтр по Производителю , вот там если вбить часть (любую часть) слова ,
то поиск отфильтрует как нужно. Нужно такое же , но что бы можно было искать по нескольким ловам (или частям слова)

------------------------
Сейчас скрипт выглядит вот так:

$('#searh .text-input').one( "focus", function(){
$.ajaxSetup({ cache: true });
$.getScript('/includes/jquery/autocomplete/jquery.autocomplete.mi n.js').done(function(script, textStatus){
console.log('searh');
$('#searh .text-input').autocomplete({ url: "/core/ajax/ajax_srch.php" , remoteDataType: 'json', queryParamName: "q",lineSeparator: "\n",cellSeparator: " ",minChars: 3,maxItemsToShow: 20,delay: 400,

onItemSelect: function( event, ui ){
console.log("выбранное значение: " , event);
document.location.href = event.data[0];
}
});
});
});

Думаю тут по коду все ясно будет .
Сейчас используется /autocomplete/jquery.autocomplete.min.js
по причине того, что библиотека делает минимум запросов к базе. и используется повсеместно jquery.

Опубликовано 3 года назад