Вставить параметры публикации cakephp в URL-адрес

StackOverflow https://stackoverflow.com/questions/1459845

  •  12-09-2019
  •  | 
  •  

Вопрос

У меня есть эта форма ниже, которая содержит два флажка для сортировки некоторых продуктов:

<form id="FiltreExtraForm" action="" method="post" name="FiltreExtraForm">
    <input id="ProductsDeliveryPrice" type="checkbox" value="1" name="data[Products][delivery_price]"/>
    <input id="ProductsPicture" type="checkbox" value="1" name="data[Products][picture]"/>
</form>

После ПУБЛИКАЦИИ я выполняю фильтрацию, но я также хочу добавить полученные параметры в URL, например:/товары/индекс/доставка_цена: 1/фото: 0 .Возможно ли это?Как я могу это сделать?

Примечание:Я не хочу использовать GET для отправки информации о форме.

Это было полезно?

Решение

Звучит так, как будто вы хотите сделать Опубликовать / Перенаправить / Получить.

Вот два примера выполнения этого в CakePHP:

Два основных преимущества перенаправления POST к a GET запрос - это:

  1. Пользователи не получают сообщение "Вы хотите повторно отправить?" диалоговое окно, если они обновляют
  2. Результирующую страницу / запрос можно добавить в закладки

Другие советы

В действии, для которого вы публикуете, вы могли бы просто подготовить URL-адрес GET, а затем перенаправить на этот URL.Затем действие для этого URL выполняет фильтрацию.

Если я вас правильно понимаю (а я не уверен, что понимаю), вы можете довольно легко передать дополнительные переменные в строке запроса действия формы.Условно это могло бы выглядеть примерно так:

<form id="FiltreExtraForm" action="/products/index?delivery_price=1&picture=0" method="post" name="FiltreExtraForm">

Используя Cake, вы должны быть в состоянии сделать то же самое без традиционной строки запроса, если хотите (хотя традиционный метод, описанный выше, также будет работать):

<form id="FiltreExtraForm" action="/products/index/delivery_price:1/picture:0" method="post" name="FiltreExtraForm"> 

Я бы рекомендовал взглянуть на помощник формы или, по крайней мере, создать URI действия с помощью помощников, но это должно дать вам то, что вам нужно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top