Фильтр списка товаров через POST-запрос

У меня есть страница со списком товаров. Необходимо при клике на логотип производителя вывести только товары данного производителя.

Каким образом отправить post-запрос на вывод отфильтрованных товаров?
Aleksandr Suslov
03 марта 2018, 09:49
modx.pro
2
1 616
0

Комментарии: 8

Михаил
03 марта 2018, 13:15
0
А чем фильтруете?
    Aleksandr Suslov
    03 марта 2018, 13:46
    -1
    Да я первый раз сталкиваюсь с подобной задачей. Не знаю с чего начать, думал в шопе есть штатный обработчик запросов. Покупать фильтр ради этого не хочется. Может что посоветуете?
      Михаил
      03 марта 2018, 13:50
      0
      Ну всегда можно свой написать. А так mFilter2 который входит в комплект mSearch2 отлично это выполнит
    Алексей Суслов
    03 марта 2018, 15:51
    0
    Не обязательно нужно такое мощное дополнение, как mSearch2 для такой небольшой задачи.
    Правда не совсем понимаю зачем через 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
      Aleksandr Suslov
      10 марта 2018, 12:02
      0
      Спасибо, получилось. Попытался сделать фильтр по цене, но работает только минимальный предел. Не могу понять в чем проблема
      'where' => '{"Data.price:>=":'~$.get.min~',"AND:Data.price:<=":'~$.get.max~'}'
        Алексей Суслов
        10 марта 2018, 12:30
        0
        У вас ошибка в синтаксисе, так должно работать:
        'where' => '{"Data.price:>=":"'~$.get.min~'","AND:Data.price:<=":"'~$.get.max~'"}'
        На будущее, используйте &showLog=1
        Сразу бы увидели, что в вашем варианте условие where вообще перестает работать.
          Aleksandr Suslov
          10 марта 2018, 12:58
          0
          Спасибо, на будущее буду использовать.
          Работает. И последний вопрос, если не затруднит)))
          Когда я вывожу категорию с $.get, значение пустое и товары не выводятся. Можно ли сначала вывести всю категорию, а уже после фильтровать её по запросу? Если да, то каким образом сделать?
            Алексей Суслов
            10 марта 2018, 13:15
            0
            Ну самый простой вариант, который приходит в голову — проверять get:
            {if $.get.min?}
            Если пусто, то $.get.min = 0
            Для $.get.max так же, но поставить например 999999, чтобы наверняка выводить все товары.

            Еще пару вопросов и я тоже соглашусь с человеком выше, что лучше использовать mSearch2 :)
            Так как у вас уже не просто фильтр по производителю получается.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      8