有没有办法更改表单提交时的默认 URL 格式?
这是我的:
<form action="<?php echo base_url('some_controller/some_method'); ?>" method="GET">
<select name="foo">
<option value="1">bar</option>
<option value="2">Wubba lubba dub dub</option>
</select>
<button type="submit">Send</button>
</form>
当我点击按钮时,url 变为:(不需要)
localhost/some_controller/some_method?foo=2
有没有办法让它像下面这样? (预期结果)
localhost/some_controller/some_method/2
仅使用 PHP/Codeigniter 可以实现吗?或者可能在 HTML 中?
(不用javascript不用htaccess也能搞定吗?)
我认为使用 form_open
方法没有任何区别。
最佳答案
发生这种情况是因为您的方法是 GET
。如果您将方法更改为 POST
,信息将从 URL 中消失。但是,它会产生不同的副作用,这些副作用或好或坏,具体取决于您的观点:
- 如果在 codeigniter 中打开,Post 会将其置于 CSRF 保护范围内。
- 如果导航回 POST 提交结果的页面,您会从浏览器收到“您要重新提交吗?”类型的消息。
唯一的其他选择是通过 javascript 在后台执行 ajax 请求。
关于php - 使表单 URL 提交看起来像路由而不是查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46244814/