Фильтр списка товаров через POST-запрос
У меня есть страница со списком товаров. Необходимо при клике на логотип производителя вывести только товары данного производителя.
Каким образом отправить post-запрос на вывод отфильтрованных товаров?
Каким образом отправить post-запрос на вывод отфильтрованных товаров?
Комментарии: 8
А чем фильтруете?
Да я первый раз сталкиваюсь с подобной задачей. Не знаю с чего начать, думал в шопе есть штатный обработчик запросов. Покупать фильтр ради этого не хочется. Может что посоветуете?
Ну всегда можно свой написать. А так mFilter2 который входит в комплект mSearch2 отлично это выполнит
Не обязательно нужно такое мощное дополнение, как mSearch2 для такой небольшой задачи.
Правда не совсем понимаю зачем через POST запрос, если только для ajax загрузки.
Но для get запроса вот рабочий пример, страница например — example.com/catalog/?vendor=sony:
Правда не совсем понимаю зачем через POST запрос, если только для ajax загрузки.
Но для get запроса вот рабочий пример, страница например — example.com/catalog/?vendor=sony:
{'!msProducts'|snippet:[
'limit' => '10',
'parents' => '3',
'sortby' => 'publishedon',
'sortdir' => 'DESC',
'tpl' => 'products_row.tpl',
'where' => '{"Vendor.name":"'~$.get.vendor~'"}'
]}
Если понадобится для post — аналогично, только заменить $.get на $.post
Спасибо, получилось. Попытался сделать фильтр по цене, но работает только минимальный предел. Не могу понять в чем проблема
'where' => '{"Data.price:>=":'~$.get.min~',"AND:Data.price:<=":'~$.get.max~'}'
У вас ошибка в синтаксисе, так должно работать:
Сразу бы увидели, что в вашем варианте условие where вообще перестает работать.
'where' => '{"Data.price:>=":"'~$.get.min~'","AND:Data.price:<=":"'~$.get.max~'"}'
На будущее, используйте &showLog=1Сразу бы увидели, что в вашем варианте условие where вообще перестает работать.
Спасибо, на будущее буду использовать.
Работает. И последний вопрос, если не затруднит)))
Когда я вывожу категорию с $.get, значение пустое и товары не выводятся. Можно ли сначала вывести всю категорию, а уже после фильтровать её по запросу? Если да, то каким образом сделать?
Работает. И последний вопрос, если не затруднит)))
Когда я вывожу категорию с $.get, значение пустое и товары не выводятся. Можно ли сначала вывести всю категорию, а уже после фильтровать её по запросу? Если да, то каким образом сделать?
Ну самый простой вариант, который приходит в голову — проверять get:
Для $.get.max так же, но поставить например 999999, чтобы наверняка выводить все товары.
Еще пару вопросов и я тоже соглашусь с человеком выше, что лучше использовать mSearch2 :)
Так как у вас уже не просто фильтр по производителю получается.
{if $.get.min?}
Если пусто, то $.get.min = 0Для $.get.max так же, но поставить например 999999, чтобы наверняка выводить все товары.
Еще пару вопросов и я тоже соглашусь с человеком выше, что лучше использовать mSearch2 :)
Так как у вас уже не просто фильтр по производителю получается.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.