【发布时间】:2012-03-20 00:58:20
【问题描述】:
我有一个如下所示的 HTML 表单:
<form action="index.php" method="post">
<input type="hidden" value="Hidden Value" name="A Hidden Value" />
<select name="dropdownOption">
<option value="First Choice +200">First Choice</option>
<option value="Second Choice +300">Second Choice</option>
</select>
<p><input type="checkbox" value="Rocket +100"> Rocket</p>
</form>
我正在像这样循环遍历这个表单的值:
foreach($_POST as $key => $value) {
}
如何从 foreach 循环中排除隐藏的输入?
附带说明,是否所有版本的 PHP 都支持输入名称中的空格(例如是否有效?)在我的 PHP 版本中,它会自动用下划线替换空格,这很棒,它是否适用于所有版本的 PHP?
感谢您的帮助。
【问题讨论】:
-
您不应该在标识符中放置空格。这是不好的做法,一些 PHP 安装可能会在包含它们的情况下中断。如果您想忽略隐藏的输入,为什么它们首先出现在您的表单中?如果您使用 JavaScript,请改用
data-*属性。 -
不是 Javascript 而是 PHP,隐藏的属性用于 foreach 循环之外的其他目的。我需要在 foreach 循环中定位不是隐藏输入的所有内容。
-
您无法从服务器端区分发布的字段类型,我同意 JamWaffles,这是您现在尝试做的一个非常糟糕的做法。
-
在您的 PHP 中,您可以创建一个包含要忽略的字段名称的数组,然后使用 PHP 的 array functions 对 $_POST 执行某种布尔运算。否则,使用要循环的字段创建一个数组,然后执行
foreach()。