Перейти к содержанию
Официальный форум поддержки Simpla

Autocomplete Поиск Не Показывает Товары Содержащие "/"


Перейти к решению Решено yr4ik,

Рекомендуемые сообщения


$(function() {
        //  Автозаполнитель поиска
        $(".input_search").autocomplete({
            serviceUrl:'ajax/search_products.php',
            minChars:1,
                        width: 500,
            noCache: false, 
            onSelect:
                function(value, data){
                     $(".input_search").closest('form').submit();
                },
            fnFormatResult:
                function(value, data, currentValue){
         var reEscape = new RegExp('(\\' + ['/' ,'.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'].join('|\\') + ')', 'g');
                    var pattern = '(' + currentValue.replace(reEscape, '\\$1') + ')';
                                       
                      return (data.image?"<img align=absmiddle src='"+data.image+"'> ":'') + value.replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>');
                }    
        });
    });
 

 

Где то тут запрещается поиск товаров со слешом. Поиск товаров же работает нормально. Например ариткул имеет вид 34554/543, набираешь 34554 - находит товар, набираешь 34554/ - не идет дальше.

Изменено пользователем netoniel
Ссылка на сообщение
Поделиться на другие сайты

 

var reEscape = new RegExp('(\\' + ['.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'].join('|\\') + ')', 'g');
 

Не пробовал, но попробуйте так

Так я уже пробовал - не помогло. Кстати тоже самое со символом "*", а вот точки как ни странно работают.

Ссылка на сообщение
Поделиться на другие сайты

"Запрещается" совсем не там, где Вы думаете, а в api/Request.php,  строка

            return strval(preg_replace('/[^\p{L}\p{Nd}\d\s_\-\.\%\s]/ui', '', $val));

Ссылка на сообщение
Поделиться на другие сайты

"Запрещается" совсем не там, где Вы думаете, а в api/Request.php,  строка

            return strval(preg_replace('/[^\p{L}\p{Nd}\d\s_\-\.\%\s]/ui', '', $val));

Убрал эту строчку - все равно так же.

Ссылка на сообщение
Поделиться на другие сайты
  • Решение
var reEscape = new RegExp('(\\' + ['.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'].join('|\\') + ')', 'g');

 

 

и в ajax/search_products.php

 

$keyword = $simpla->request->get('query', 'string');

меняем на:

$keyword = $simpla->request->get('query');
$keyword = preg_replace('/[^\p{L}\p{Nd}\d\s_\-\.\%\s\/]/ui', '', $keyword);
Изменено пользователем yr4ik
Ссылка на сообщение
Поделиться на другие сайты

 

var reEscape = new RegExp('(\\' + ['.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'].join('|\\') + ')', 'g');

 

 

и в ajax/search_products.php

 

$keyword = $simpla->request->get('query', 'string');

меняем на:

$keyword = $simpla->request->get('query');
$keyword = preg_replace('/[^\p{L}\p{Nd}\d\s_\-\.\%\s\/]/ui', '', $keyword);

Спасибо, не совсем понял, что мы сделали, но спасибо огромное ))

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...