所以 GET 表单使通常的 url 像
.../search/?q=apple
你可以制作一个表单创建像这样的网址吗
.../search/q:apple/
所以 GET 表单使通常的 url 像
.../search/?q=apple
你可以制作一个表单创建像这样的网址吗
.../search/q:apple/
多谢你们。我找到了不同的解决方案。我只是将表单作为 POST 提交,在控制器的操作中,我读取帖子数据并创建一个 url,将帖子数据命名为 params,然后 $this->redirect('...'); 给它。
创建这些 URL 的方法可以在这里找到:http: //book.cakephp.org/view/842/url
如果我对您的理解正确,那么您本身并不是要创建不同的 URI,而是要以不同的方式序列化表单数据。换句话说,您对修改查询字符串而不是 URI 本身感兴趣。
据我所知,这就是表单序列化数据的方式,没有办法真正覆盖这种行为。如果您真的想这样做,我怀疑您必须捕获提交事件,手动将表单数据序列化为您想要的格式,将该格式附加到表单的action
值,向页面发出自定义请求(通过location.href
等.) 并返回false
,这样表单本身就不会真正被提交。
当然,您也可以通过 Ajax 提交,您可以在其中拥有更多控制权。
我不知道有任何其他方式可以做我认为你所要求的事情。