sql insert

时间:2015-08-19 17:29:42

标签: php checkbox

我遇到类似帖子的问题:

  

how to check multiple $_POST variable for existence using isset()?

我的问题是,我有一个相当大的复选框列表,如果检查它们是为了设置$ row的状态,我需要知道。它就像所提到的剧本一样,全部和所有,除了我已经和OR投入到作品中。

if (  isset($_POST['Facial1']) 
    && ($_POST['Facial2']) 
    && ($_POST['Facial3'])
    && ($_POST['Facial4']) 
    && ($_POST['Intra-Oral1']) 
    && ($_POST['Intra-Oral2'])
    && ($_POST['Intra-Oral3']) 
    && ($_POST['Intra-Oral4']) 
    && ($_POST['Intra-Oral5']) 
    && ($_POST['Intra-Oral6']) 
    && (
         (
             ($_POST['X-Ray1']) 
          && ($_POST['X-Ray3'])
         ) 
        || ($_POST['X-Ray5'])
       )
   )
{
    $Status = 1; 
} else {
    $Status = 0;
}

每次运行测试时,只要它到达未检查的元素,就会抛出错误:undefined index:xxx。其中xxx是第一个未检查的项目。

2 个答案:

答案 0 :(得分:1)

未检查的复选框不会作为POST正文的一部分发送。您的代码需要使用isset:

persons

答案 1 :(得分:1)

isset()允许您一次检查一个变量isset($var)或多个变量isset($var,$var1,$var2)这将返回true,如果全部存在则返回false,如果未设置一个或多个,则返回false。

你的代码只检查一个然后做得好我不知道是什么

尝试

if (  isset(
            $_POST['Facial1'], $_POST['Facial2'], $_POST['Facial3'],
            $_POST['Facial4'], $_POST['Intra-Oral1'], $_POST['Intra-Oral2']
            $_POST['Intra-Oral3'], $_POST['Intra-Oral4'], 
            $_POST['Intra-Oral5'], $_POST['Intra-Oral6']
            )
      &&
        ( 
          isset($_POST['X-Ray1'], $_POST['X-Ray3'])
          || 
          isset($_POST['X-Ray5'])
        )
   )
{
    $Status = 1; 
} else {
    $Status = 0;
}

我希望这是你的意图,从你的代码中不是很明显。