Вставить параметры публикации cakephp в URL-адрес
Вопрос
У меня есть эта форма ниже, которая содержит два флажка для сортировки некоторых продуктов:
<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
запрос - это:
- Пользователи не получают сообщение "Вы хотите повторно отправить?" диалоговое окно, если они обновляют
- Результирующую страницу / запрос можно добавить в закладки
Другие советы
В действии, для которого вы публикуете, вы могли бы просто подготовить 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 действия с помощью помощников, но это должно дать вам то, что вам нужно.