【发布时间】:2012-12-19 02:38:27
【问题描述】:
当我提交一个包含多个同名复选框的表单时,我会得到一个如下所示的 URL: www.mysite.com/search.php?myvalue%5B%5D=value1&myvalue%5B%5D=value2
有什么方法可以删除 %5B%5D 以使 URL “漂亮”,例如 htaccess?
代码:
<form>
<input type="checkbox" name="myvalue[]" value="value1">
<input type="checkbox" name="myvalue[]" value="value2">
</form>
【问题讨论】:
-
请发布您的代码,然后我们也许可以解决
%5B%5D的原因 -
我知道为什么会得到它,只是不知道如何将 URL 重写为更简单、更短的 URL。
-
只有当你出于某种不清楚的原因实际上在两个元素中都使用了
name="myvalue[]"时才会发生这种情况(也许是为了“轻松”利用 PHP 特有的奇怪功能从请求参数映射中获取数组?),但似乎并非如此。您是否使用了一些负责生成/操作 HTML 输出的 MVC 框架? -
Oskwish,我不是那个意思。只有当您实际使用了
name="myvalue[]"时,URL 中的%5B%5D才会出现。如果您正在使用name="myvalue",正如您在问题中所展示的那样,它不应该出现(换句话说,到目前为止发布的代码根本不会导致所描述的问题,因此您在问题中有一个巨大的红鲱鱼因此这个问题实际上是无效的)。 -
如果您不希望 URL 中包含这些值,请使用发布请求。一个更好的主意是停止关心您的 URL 的外观。