php – 提交表单时从URL中删除[]

前端之家收集整理的这篇文章主要介绍了php – 提交表单时从URL中删除[]前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我提交一个包含多个具有相同名称的复选框的表单时,我会得到一个如下所示的URL:
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>

猜你在找的PHP相关文章