2

我在 3 个手风琴中有 3 种不同的形式,但查询是一种。if (!empty($_POST)这个查询,然后提交表单。但它显示了其他形式的错误,即online blah blah blah is error它为空字段显示此错误。

有没有办法为字段隐藏此错误消息?

if(!empty($_POST)){

        $sql = "
            INSERT INTO 
            leave_req
            (
              `lvm_type`,
              `lvm_do`,
              `lvm_db`,
              `lvm_td`,
              `lvc_type`,
              `lvc_do`,
              `lvc_db`,
              `lvc_td`,
              `lvo_type`,
              `lvo_do`,
              `lvo_db`,
              `lvo_td`,
              `lvn_type`,
              `lvn_do`,
              `lvn_db`,
              `lvn_td`,
              `lv_reason`,
              `lv_usign`,
              `lv_rsign`,
              `lv_asign`,
              `lv_sec`,
              `lv_ip`,
              `lv_cdate`
            )
            values
            (
                '".addData($_POST['altype'])."',
                '".addData($_POST['aleave1'])."',
                '".addData($_POST['aleave2'])."',
                '".addData($_POST['altotal'])."',
                '".addData($_POST['cltype'])."',
                '".addData($_POST['cleave1'])."',
                '".addData($_POST['cleave2'])."',
                '".addData($_POST['cltotal'])."',
                'null',
                'null',
                'null',
                'null',
                'null',
                'null',
                'null',
                'null',
                'null',
                'null',
                'null',
                'null',
                'null',
                '".$ip."',
                now()
            )";
         echo "message submitted successfully";
         } else {
         echo "check your form"; }
4

2 回答 2

1

解决这个问题的一个好方法是使用isset()结合三元运算符。基本上,您的三元运算符将评估为给定值之一,适当的$_POST字段或null. 如果有一个设置$_POST字段,它将成为查询的一部分,否则null将被使用。

<?php
if(!empty($_POST)){
    $sql = "
        INSERT INTO 
        leave_req
        (
          `lvm_type`,
          `lvm_do`,
          `lvm_db`,
          `lvm_td`,
          `lvc_type`,
          `lvc_do`,
          `lvc_db`,
          `lvc_td`,
          `lvo_type`,
          `lvo_do`,
          `lvo_db`,
          `lvo_td`,
          `lvn_type`,
          `lvn_do`,
          `lvn_db`,
          `lvn_td`,
          `lv_reason`,
          `lv_usign`,
          `lv_rsign`,
          `lv_asign`,
          `lv_sec`,
          `lv_ip`,
          `lv_cdate`
        )
        values
        (
            '" . (isset($_POST['altype']) ? addData($_POST['altype']) : 'null') . "',
            '" . (isset($_POST['aleave1']) ? addData($_POST['aleave1']) : 'null') . "',
            '" . (isset($_POST['aleave2']) ? addData($_POST['aleave2']) : 'null') . "',
            '" . (isset($_POST['altotal']) ? addData($_POST['altotal']) : 'null') . "',
            '" . (isset($_POST['cltype']) ? addData($_POST['cltype']) : 'null') . "',
            '" . (isset($_POST['cleave1']) ? addData($_POST['cleave1']) : 'null') . "',
            '" . (isset($_POST['cleave2']) ? addData($_POST['cleave2']) : 'null') . "',
            '" . (isset($_POST['cltotal']) ? addData($_POST['cltotal']) : 'null') . "',
            'null',
            'null',
            'null',
            'null',
            'null',
            'null',
            'null',
            'null',
            'null',
            'null',
            'null',
            'null',
            'null',
            '".$ip."',
            now()
        )";
        echo "message submitted successfully";
 } else {
    echo "check your form"; }
 ?>
于 2013-08-28T19:13:20.317 回答
1

尝试这个

if (isset($_POST['form1']) or
    isset($_POST['form2']) or
    isset($_POST['form3']) )
{
    ...
}
于 2013-08-28T18:56:55.090 回答