2017-09-15 155 views
3

有没有一种方法来更改表单提交上的默认URL形成?使表单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> 

当我点击该按钮,则网址:(不想

localhost/some_controller/some_method?foo=2 

有没有办法让它像下面? (预期结果

localhost/some_controller/some_method/2 

它是可以实现的,只有PHP /笨?或者也许在HTML?
(可它没有JavaScript和没有htaccess的做什么?)

我不使用form_open方法觉得有什么差别。

+2

为什么不使用POST而不是GET? –

+0

@BrianGottier for freeeeedom。不,但严重。对于这个: – FirstOne

+2

那么你的答案是否定的,这是不可能的。 PHP发送给浏览器后,您无法操作HTML输出。你将不得不使用JavaScript。 –

回答

0

这是因为你的方法是GET。如果您将方法更改为POST,则信息将从URL中消失。但是,根据您的观点,它会有不同的副作用,无论是好还是坏:

  1. 如果在codeigniter中打开该文件,它将置于CSRF保护的作用域中。
  2. 如果返回到POST提交结果的页面,您将收到“您想重新提交吗?” - 来自浏览器的消息类型。

唯一的另一种选择是通过javascript在后台执行ajax请求。

+0

我已经想到了一些替代解决方案,但我希望找到一个答案,展示如何以预期的方式完成此任务。 – FirstOne

相关问题