【发布时间】:2011-08-10 20:59:41
【问题描述】:
我第一次用 PHP 编写一个脚本来处理包含复选框的 POSTed 表单。
如您所知,复选框通过使用相同的名称属性进行分组,当出现多个值时,$_POST["some_name"] 应该将它们存储在一个数组中。
我进行了测试,但我得到的不是预期的数组,而是一个单一的值——最后一个检查项目的值。
此时,有些困惑,我查看了一些文档,发现 PHP 的复选框名称应以 [] 结尾。是这样吗?预计 HTML 表单和处理它的脚本之间存在什么疯狂的关系?假设我无权访问 HTML 字段名称?假设,就我而言,我有充分的理由不因为一些晦涩的废话而改变我的命名方案。
现在,该问题似乎至少存在一种解决方案:PHP: Retrieving value of checkboxes when name doesn't have array
我想知道是否有一种非常简单的方法可以不用这些疯狂的括号,顺便说一下,您对此有何看法?只有我一个震惊吗?
编辑:好的,我当然可以解决这个问题,但我希望就 HTML 和 PHP 之间的某种“非关注点分离”提出一些(次要的)基本观点。显然,如何编写 HTML 代码与 PHP 无关。
【问题讨论】:
-
我刚刚遇到了同样的问题并且有同样的想法!为什么html表单名称要依赖php?什么,如果像你一样,我无法控制表单,创建它的人以“正常”方式(没有 [])。我不得不说我不明白为什么我必须将 [] 添加到我的 HTML 中,因为 HTML 和 PHP 应该相互独立。您是否找到了一个正常的解决方案 - 不是以 PHP 特定的方式创建表单?
-
不幸的是,没有。我最终添加了这些括号。而且我绝对不喜欢 PHP!