Как передать параметры для поиска в mFilter в GET?
Нужна помощь в правильном способе формирования URL с одной страницы сайта для перехода в каталог, где используется mFilter2, чтобы фильтр этот URL с параметрами правильно разобрал и отфильтровал товары.
На данный момент имеется вот такая форма:
при нажатии на кнопку «Подобрать» мы переходим на страницу catalog/vse-tovaryi/?ms|price=500&msoption|tags=1
А если в селекте «Цена» мы выбираем «Любая» (у неё value=""), переходим на catalog/vse-tovaryi/?ms|price=&msoption|tags=1
Соответственно товары не найдены, т.к. цена не указана. От 0 до 0.
Вопрос: как вообще не печатать этот параметр «ms|price=» в URL, если выбрано значение с пустым value?
Чтобы при выборе цены «Любая» при переходе ссылка была такой: catalog/vse-tovaryi/?msoption|tags=1
Обрыл весь google, ответа не нашел.
Мне подсказали на тостере, что как-то с помощью JS вырезать сам селект, если он пустой, но это как-то странно.
Либо изменить в самом обработчике mFilter… чтобы он пустые «ms|price=» игнорировал?
Мне всего лишь нужно с главной страницы сайта дать клиентам возможность выбрать нужные параметры для сортировки (блок «Подбор по параметрам» вверху страницы) и путём нажатия на кнопку перейти на страницу каталога с правильно сгенерированным URL, чтобы фильтр его правильно «разобрал».
Заранее благодарен!
На данный момент имеется вот такая форма:
<form role="form" action="catalog/vse-tovaryi/">
<select name="ms|price">
<option value="">Любая</option>
<option value="500">500 рублей</option>
</select>
<select name="msoption|tags">
<option value="1">Тэг 1</option>
<option value="2">Тэг 2</option>
</select>
<button type="submit">Подобрать</button>
</form>В селекте Цена выбираем 500 рублей,при нажатии на кнопку «Подобрать» мы переходим на страницу catalog/vse-tovaryi/?ms|price=500&msoption|tags=1
А если в селекте «Цена» мы выбираем «Любая» (у неё value=""), переходим на catalog/vse-tovaryi/?ms|price=&msoption|tags=1
Соответственно товары не найдены, т.к. цена не указана. От 0 до 0.
Вопрос: как вообще не печатать этот параметр «ms|price=» в URL, если выбрано значение с пустым value?
Чтобы при выборе цены «Любая» при переходе ссылка была такой: catalog/vse-tovaryi/?msoption|tags=1
Обрыл весь google, ответа не нашел.
Мне подсказали на тостере, что как-то с помощью JS вырезать сам селект, если он пустой, но это как-то странно.
Либо изменить в самом обработчике mFilter… чтобы он пустые «ms|price=» игнорировал?
Мне всего лишь нужно с главной страницы сайта дать клиентам возможность выбрать нужные параметры для сортировки (блок «Подбор по параметрам» вверху страницы) и путём нажатия на кнопку перейти на страницу каталога с правильно сгенерированным URL, чтобы фильтр его правильно «разобрал».
Заранее благодарен!
Комментарии: 8
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Вариант с удалением select если он пуст я сделал, но это же не выход…
Если есть желающие за вознаграждение помочь, буду рад.
В папке /core/components/msearch2/custom создаем файл custom.class.php:
В настройках указываем обработчик фильтров: _mse2FiltersHandler
Теперь если ms|price ничему не равен, то выведутся все товары.
Можно сделать так:
Но более правильный и красивый вариант — расширить стандартный метод фильтрации number и сделать так, чтобы он возвращал все значения при пустом запросе.
Убрать данные селекта при отправке формы можно только через javascript. Потому что, если у формы есть поле name=«ms|price», то она всегда будет его отправлять.
Спасибо, Василий.