【问题标题】:Remove square brackets [] from method GET form url从方法 GET 表单 url 中删除方括号 []
【发布时间】:2012-12-20 19:08:36
【问题描述】:

我正在使用带有方法 GET 和复选框数组的表单:

foreach ($foo AS $key=> $value) {
$i++;
echo '<label for="'.$i.'">'.$value.'</label>
  <input type="checkbox" name="foo[]" value="'.$value.'"" />';
}

输出如下网址:

form.php?id=34&foo[]=c1&foo[]=c2&foo[]=c3

有没有办法删除方括号 [] ,然后将表单方法更改为 POST 这不是真正的选项?

【问题讨论】:

  • 不要将元素命名为foo[],而是foo...
  • 方括号有什么问题?如果删除它们,您将仅获得获取字符串中的最后一个值。在您提供的网址中,您只会得到 $_GET['foo']=='c3'。
  • 由于您在循环中生成复选框,因此您必须保留该括号,否则一个复选框值将被另一个值覆盖
  • Jonathan 和 Kasun 都指出了您需要方括号的原因。你有什么令人信服的理由想要摆脱它们吗?
  • 不,除了“漂亮”的网址之外,没有真正令人信服的理由。

标签: php forms get


【解决方案1】:

没有。如果您希望允许多个可能的值并将其作为单个数组在与复选框对应的 PHP 端使用,则需要使用方括号对其进行命名。通常这不是问题,因为您通常会提交带有帖子的表单并且看不到参数。

【讨论】:

  • form 方法最初是 POST 但我将其更改为 GET 以解决以前的问题。
  • @AnnaRiekic 创建一个关于上一个问题的问题...也许我们可以帮助您使用 POST 解决它。
猜你喜欢
  • 1970-01-01
  • 2013-05-05
  • 2023-03-09
  • 1970-01-01
  • 2021-02-17
  • 2014-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多