CakePHP - Можете ли вы заставить формы отправлять параметры как именованные? - PullRequest
1 голос
/ 11 марта 2010

Таким образом, GET формы делают обычные URL-адреса, как

.../search/?q=apple

Можете ли вы сделать форму для создания URL, как

.../search/q:apple/

Ответы [ 3 ]

3 голосов
/ 13 марта 2010

Спасибо, ребята.Я нашел другое решение.Я просто отправляю форму как POST, и в действии контроллера я читаю данные записи и создаю URL с данными записи как именованные параметры, а затем $ this-> redirect ('...');к этому.

2 голосов
/ 11 марта 2010

Если я вас правильно понимаю, вы не собираетесь создавать другой URI как таковой, а хотите сериализовать данные формы другим способом. Другими словами, вы заинтересованы в изменении строки запроса, а не в самом URI.

Насколько я знаю, именно так формы сериализуют свои данные, и нет способа действительно переопределить это поведение. Если вы действительно хотите это сделать, я подозреваю, что вам придется захватить событие отправки, вручную сериализовать данные формы в нужный вам формат, добавить этот формат к значению action формы, сделать специальный запрос на странице через location.href и т. д.) и верните false, чтобы сама форма никогда не отправлялась.

Конечно, вы также можете отправить через Ajax, где у вас есть немного больше контроля.

Я не знаю другого способа сделать то, о чем вы думаете.

2 голосов
/ 11 марта 2010

Методы для создания этих URL можно найти здесь: http://book.cakephp.org/view/842/url

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...