urka2000 0 Опубликовано 22 марта, 2014 Жалоба Share Опубликовано 22 марта, 2014 Стандартный поиск ищет по тегам товара, которые проставляются в карточке товара. ЧТо хорошо. В эти теги удобно вводить доп. слова товара, по которым НУЖНО осуществлять поиск, но не нужно выводить в карточке товара. Пример, запчасть на авто, может быть от разных производителей (оригинал или корейские-китайские заменители). Т.е. артикул у товара есть оригинальный, а есть "подобные" артикулы, типа 34759347, 3847АН, 3457-4838-А, 4857.3885. Т.е. артикул может быть через черточку, палочку, точку и подобные варианты. Особого веселья добавляет то, что и пользователь может ввести артикул поиска КАК УГОДНО. в связи с этим после долгих споров решили, что ВВОДИМЫЙ пользователем в строке поиска запрос должен автоматом убирать точки, запятые,слеши и т.д. И полученный после исключения спецсимволов запрос отправлять в стандартный поиск. как такое реализовать? где можно/должно перехватывать введеный посиковый запрос и преобразовывать ПЕРЕД отправкой в поиск ВамШопа? Ссылка на сообщение Поделиться на другие сайты
shaklov 63 Опубликовано 22 марта, 2014 Жалоба Share Опубликовано 22 марта, 2014 1. В спецификации HTML5 для поля появилась возможность задать регулярное выражение - "pattern" в Вашем случае будет [A-Za-z0-9]{2,} Форма не будет отправляться, пока поле не будет заполнено правильно. 2. Можно на jQuery плагин подобрать, который не даст вводить в поле поиска символы, не являющиеся буквами и цифрами. 3. Либо в коде перед выполнением запроса к базе убирать лишнее. Вам нужно первый вариант попробовать - он самый простой: В файле шаблон/source/boxes/search.php в строка где описывается поле ввода станет примерно такой: $box->assign('INPUT_SEARCH', vam_draw_input_field('keywords', '', 'pattern="[A-Za-z0-9]{2,}" ')); При нажатии на Enter или на кнопку поиска будет ругаться, что поле заполнено неправильно. Ссылка на сообщение Поделиться на другие сайты
urka2000 0 Опубликовано 2 апреля, 2014 Автор Жалоба Share Опубликовано 2 апреля, 2014 Магазин как и поиск в нем, все таки для клиентов, а не програмеров, согласны? :) поэтому все-таки правильным будет п.3. "перед запросом к базе..." где стринг в select передается? т.е. в каком месте попарсить стринг запроса перед пеердачей в базу? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 2 апреля, 2014 Жалоба Share Опубликовано 2 апреля, 2014 sql запрос на поиск в /advanced_search_result.php Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения