【发布时间】:2018-02-24 22:55:59
【问题描述】:
有没有办法更改表单提交时的默认 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变成:(not Wanted)
localhost/some_controller/some_method?foo=2
有没有办法让它像下面这样? (预期结果)
localhost/some_controller/some_method/2
仅使用 PHP / Codeigniter 可以实现吗?或者在 HTML 中?
(可以在没有 javascript 和没有 htaccess 的情况下完成吗?)
我认为使用form_open 方法没有任何区别。
【问题讨论】:
-
为什么不直接使用 POST 而不是 GET?
-
@BrianGottier 为 freeeeedom。不,但认真。为此:
-
那么你的答案是否定的,这是不可能的。在将 HTML 输出发送到浏览器后,您无法通过 PHP 对其进行操作。您必须使用 javascript。
-
这是一个详细的上下文: 我有一个前一页,其中包含该方法的锚点列表,该方法将值作为 GET 传递。该列表和此表格具有相同的目的。按照我预期的方式使用它,我可以使用相同的方法,而无需更改方法本身的任何内容。我可以重构它以使用参数或 POST 数据,或者甚至将此表单作为 POST 发送到另一个方法,并在那里调用另一个传递值的方法,就像列表一样。但我很好奇这是否可能......@BrianGottier
-
@FirstOne 绝对是:由于 action 参数,它知道将请求发送到哪里。但是,您(有效地)尝试做的是允许操作参数根据输入而变化。 HTML 并非旨在支持该用例:动作通过
action属性进入,这是一个固定字符串。使其动态化的唯一方法是使用 javascript。
标签: php html codeigniter