Перейти к содержимому


Фото
- - - - -

Поиск товаров со спецсимволами

поиск товары спецсимволы

  • Чтобы отвечать, сперва войдите на форум
1 ответ в теме

#1 kycher

kycher
  • Пользователь
  • 3 сообщений
  • Дизайн, Программирование, Верстка, Заказчик
  • Версия CMS:2.x

Опубликовано 21.07.2020 - 15:11

Доброго

 

Нужно чтобы поиск работал по названиям товара и не отсекал спецсимволы (слеши и ковычки) и искал если даже в названии товара они присутствуют. Да это не безопасно, но не моя воля.

 

Сейчас при вводе в поиск он заканчивает искать при вводе спецсимвола. Как вырезать?

 

Файл в index.tpl шаблона - автозаполнитель поиска

 

function(suggestion, currentValue){
					var reEscape = new RegExp('(\\' + ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'].join('|\\') + ')', 'g');
					var pattern = '(' + currentValue.replace(reEscape, '\\$1') + ')';
	  				return (suggestion.data.image?"<img align=absmiddle src='"+suggestion.data.image+"'> ":'') + suggestion.value.replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>');
				}	

Тут обрезает, удаление из него например слеша \ не дает результата.

 

Далее, есть в файле js/jquery.autocomplete-min.js 

 

this.selection=null;this.initialize();this.setOptions(b)}var k=function(){return{escapeRegExChars:function(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},createNode:function(a){var b=document.createElement("div");b.className=a;b.style.position="absolute";b.style.display="none";return b}}}();

Удаление тут тоже не помогает.

 

Куда смотреть ? api\Request.php ajax\search_products.php

 

 

Спасибо за ответ.

 

 

 


 


 



#2 kozhushko8

kozhushko8
  • Пользователь
  • 21 сообщений
  • Дизайн
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 22.07.2020 - 14:20

api\Request.php

 

 

 

if($type == 'string')

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






Также с меткой «поиск, товары, спецсимволы»

0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых