我有一个带有3个复选框的表单,如果选中它们,我的想法会运行一些命令,如果没有选中则执行其他操作。
for($i=1; $i<=3; $i++)
{
if ($_POST['option'.$i])
{
echo "123";
}
if (!$_POST['option'.$i])
{
echo "456";
}
}
但如果未选择它们,则不会执行命令.. if语句是否正确?
答案 0 :(得分:6)
不,你应该做的就是像这样检查它们:
if (isset($_POST['option'.$i]))
否则,您只是试图评估该$ _POST元素中的任何内容的布尔形式。为什么这么糟糕?假设该字段的值为0
。即使选中了复选框,您的代码也不会运行。
答案 1 :(得分:1)
当然,这样可以正常工作。
如果您想稍微解开代码,可以这样做:
<input type="checkbox" name="options[option_name]" value="1" />
<input type="checkbox" name="options[second_option_name]" value="1" />
if(isset($_POST['options']) && is_array($_POST['options']) {
foreach($_POST['options'] as $option_name => $ignore_this) {
switch($option_name) {
case 'option_name':
// do something
break;
case 'second_option_name':
// do something else
break;
}
}
}
答案 2 :(得分:0)
您可以使用if ... else:
if ($_POST['option'.$i])
{
echo "123";
}
else
{
echo "456";
}
避免两次检查相同的情况。