加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 18:13:13 所属栏目:PHP教程 来源:网络整理
导读:当我提交一个包含多个具有相同名称的复选框的表单时,我会得到一个如下所示的URL: www.mysite.com/search.php?myvalue[]=value1u0026amp;myvalue[]=value2 有没有我可以删除[]以使URL“漂亮”,像htaccess这样的东西? 码: form input type="checkbox" name
当我提交一个包含多个具有相同名称的复选框的表单时,我会得到一个如下所示的URL:
www.mysite.com/search.php?myvalue[]=value1u0026amp;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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读