【发布时间】:2011-12-26 04:02:04
【问题描述】:
我正在观看讲师正在测试表单提交的视频教程。
他使用的代码是:
$required_fields = array('menu_name', 'position', 'visible');
foreach ($required_fields as $fieldname) {
if (!isset($_POST[$fieldname]) || (empty($_POST[$fieldname]) && $_POST[$fieldname] != 0) {
$errors[] = $fieldname;
}
}
注意if statement 中&& 之后的条件,其中他有$_POST[$fieldname] != 0
由于某种原因,这对我不起作用。
但是,当我像 $_POST[$fieldname] != "0" 这样给出 0 引号时,它会起作用。
顺便说一句,'visible' 字段是一个布尔值,也就是 MySQL 中的 tinyint(1)。
以下是该字段在表单上的 HTML:
Visible:
<input type="radio" name="visible" value="1" <?php if ($sel_subject['visible'] == "1") {echo "checked=\"checked\"";} ?> /> Yes
<input type="radio" name="visible" value="0" <?php if ($sel_subject['visible'] == "0") {echo "checked=\"checked\"";} ?> /> No
有什么想法吗?提前感谢您的帮助。
更新:
我不确定发生了什么,但由于某种原因,代码现在可以在没有引号的情况下运行。如有任何混淆,请见谅。
【问题讨论】:
-
我应该补充一点,我尝试在 HTML 中使用引号和不使用引号进行更改,但这没有区别。
-
你能检查正在使用的代码吗?看起来
foreach中的if语句在{之前缺少)。 -
@Tim 抱歉,我没有看到这个问题。我想日食会提醒我的。
-
if (!isset($_POST[$fieldname]) || (empty($_POST[$fieldname]) && $_POST[$fieldname] != 0)) {。if表达式从未正确关闭。 -
啊,你是对的。这是一个错字......但在代码中,我已经关闭了
if条件。很抱歉造成混乱。