Что писать в action формы

192
30 марта 2018, 13:50

Здравствуйте! На сайте есть форма фильтра:

<form action="..." method="GET">
  ...
</form>

Если пользователь находится просто в каталоге (категория не выбрана) action у формы должен быть таким action="/catalog/" (в URL будет такой адрес /catalog/?min_price=100&max_price=500), а если пользователь находясь в каталоге выбрал категорию и потом решил отфильтровать не могу понять что писать в action формы. Конечный адрес в URL должен быть таким /catalog/?category=ad?min_price=500&max_price=600. В данный момент при нажатии на кнопку отфильтровать фильтр срабатывает не учитывая в каком каталоге мы находимся (т.е. адрес в URL /catalog/?min_price=500&max_price=600). Надеюсь все понятно разъяснил)

Answer 1

Простой пример:

<form action="/catalog" method="GET">
  <select name="category">
    <option value="catID1">Категория 1</option>
    <option value="catID2">Категория 2</option>
    <option value="catID3">Категория 3</option>
  </select>
  <select name="price_min">
    <option value="100">100</option>
    <option value="200">200</option>
    <option value="300">300</option>
  </select>
  <input type="text" name="keyword" value="">
  /* и т.д */
</form>
Answer 2

В экшен вы пишите адрес скрипта получающего данные с формы. Тоесть в вашем случае следующее: /catalog/
При отправке формы адрес будет вида: /catalog/?category=ad&min_price=500&max_price=600

Answer 3
<form action="/catalog" method="GET">
    <?= ((isset($_GET['category']) && !empty($_GET['category'])) ? '<input type="hidden" name="category" value="'.$_GET["category"].'">' : '');?>
    <input type="range" min="100" max="1000" name="min_price" value="<?= (intval($_GET['max_price']) > intval($_GET['min_price']) ? intval($_GET['min_price']) : 100);?>">
    <input type="range" min="100" max="1000" name="max_price" value="<?= (intval($_GET['max_price']) > intval($_GET['min_price']) ? intval($_GET['max_price']) : 1000);?>">
    <button type="submit">Отправить</button>
</form>

Если вы находитесь не в категории, то <input type="hidden" name="category" value"..."> не выводится. Т. е. вы берёте значения из $_GET параметров

READ ALSO
Как связать записи в БД по уникальному id?

Как связать записи в БД по уникальному id?

Всем приветВ БД есть две таблицы: Первая основная таблица "db" содержит поля

231
Почему не удается получить ответ от сервера soap wsdl php Curl?

Почему не удается получить ответ от сервера soap wsdl php Curl?

Сам не дружу пока что с soap wsdl, хоть и прочитал кучу статей про них, но никак не укладываются в голове базовые основыВ интеренете нашел пример...

197