当我提交一个包含多个具有相同名称的复选框的表单时,我会得到一个如下所示的URL:
www.mysite.com/search.PHP?myvalue[]=value1\u0026amp;myvalue[]=value2
www.mysite.com/search.PHP?myvalue[]=value1\u0026amp;myvalue[]=value2
有没有我可以删除[]以使URL“漂亮”,像htaccess这样的东西?
码:
<form> <input type="checkBox" name="myvalue[]" value="value1"> <input type="checkBox" name="myvalue[]" value="value2"> </form>
Is there someway that I can remove the %5B%5D to make the URL “pretty”,with something like htaccess?
不.[]是URL中的reserved characters,所以它们肯定需要是URL-encoded.
如果使用POST不是一个选项,这是有意义的,因为它是一个搜索表单,你最好的选择是给每个人一个不同的名字,值为1左右.
<form> <input type="checkBox" name="option1" value="1" /> <input type="checkBox" name="option2" value="1" /> </form>
或者,如果您确实坚持使用相同的名称,那么您应该自己提取查询字符串,而不是依赖于在获取名称中带[]后缀的参数时返回数组的PHP特定功能.
$params = explode('&',$_SERVER['QUERY_STRING']); foreach ($params as $param) { $name_value = explode('=',$param); $name = $name_value[0]; $value = $name_value[1]; // ... Collect them yourself. }
这样你就可以继续使用无支撑名称.
<form> <input type="checkBox" name="option" value="option1" /> <input type="checkBox" name="option" value="option2" /> </form>