如果选中了复选框,则为PHP操作!

时间:2011-06-09 16:45:01

标签: php

我有一个带有3个复选框的表单,如果选中它们,我的想法会运行一些命令,如果没有选中则执行其他操作。

for($i=1; $i<=3; $i++)
{
    if ($_POST['option'.$i])
    {
    echo "123";
    }
    if (!$_POST['option'.$i]) 
    {
    echo "456";
    }
}

但如果未选择它们,则不会执行命令.. if语句是否正确?

3 个答案:

答案 0 :(得分:6)

不,你应该做的就是像这样检查它们:

if (isset($_POST['option'.$i]))

否则,您只是试图评估该$ _POST元素中的任何内容的布尔形式。为什么这么糟糕?假设该字段的值为0。即使选中了复选框,您的代码也不会运行。

Documentation for isset()

答案 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";
   }

避免两次检查相同的情况。

相关问题