如何在php中管理多个javascript警报框

时间:2014-02-13 10:01:33

标签: javascript php html mysql

我在html中创建了一个表单并使用If条件在php中验证表单数据,当数据无效时,错误/消息显示在Javascript Alert框中。假设这是以下形式:

<form method=post>

<table>

        <tr>
          <td> Username: </td>
          <td> <input type="text" name="username"/> </td>
        </tr>

        <tr>
          <td> User Password: </td>
          <td> <input type="password" name="userpass"/> </td>
        </tr>

        <tr>
          <td> Registration ID: </td>
          <td> <input type="text" name="std_id"/> </td>
        </tr>

        <tr>
          <td> Student's Full Name: </td>
          <td> <input type='text' name='std_name'/> </td>
        </tr>

        <tr>
          <td> Father's Name: </td>
          <td> <input type="text" name="fname"/> </td>
        </tr>


        <tr>
          <td> Date of Birth: </td>
          <td> <input type="date" name="dob"/> </td>
        </tr>

        <tr>
          <td> Admission Date: </td>
          <td> <input type="date" name="adm_date"/> </td>
        </tr>


        <tr>
          <td> Mobile No: </td>
          <td> <input type="text" name="contact" id="text" style="width:160px;"  /> </td>
        </tr>

</table>

            <input type="submit" name="insert" value="Submit"/> 

</form>

&安培;这是PHP代码,我检查表单数据进行验证:

<?php
require_once('connection.php');

    if (isset ($_POST['insert']))
    {   
    $valid = true;


    if( (empty($_POST['std_name'])) )
    {
        echo "<script> alert('Please Enter Student Name!') </script>";
        $valid = false;
    }

    $cellNo = $_POST['contact'];
    if (!is_numeric ($_POST['contact']) || (strlen($cellNo) != 11) )
    {
        echo "<script> alert ('Mobile Number is not valid') </script>";
        $valid = false;
    }


    $current_date = date('Y/m/d');
    $dob = $_POST['dob'];
    if( strtotime ($_POST['dob']) >= strtotime($current_date) || ($dob > date("Y/m/d", mktime(0, 0, 0, date('m'), date('d'), date('Y') - 4) )) )
    {
        echo "<script> alert('Invalid date of birth') </script>";
        $valid = false;
    }       

    $adm_date = $_POST['adm_date'];
    if( $adm_date < date("Y/m/d", mktime(0, 0, 0, date('m'), date('d'), date('Y') - 1)) )
    {
        echo "<script> alert('Admission/Registration Date is too old!') </script>";
        $valid = false;
    }



    if ($valid)
    {
              mysql_query("INSERT into ........values .......");

          echo "<script> alert('1 Record inserted!') </script>";
    }

}

?>

现在我的问题是,如果用户没有输入名称&amp;输入无效的DOB或注册日期,它将显示警告框,显示其中三个的消息,例如:

在第一个警告框中(“请输入学生姓名”)

在第二个警告框中(“出生日期无效”)

在第3个警告框中(“入场/登记日期太旧”)

我想要的是,当它弹出第一个警告框时,它必须停止显示其他警告框,以便在php中如何实现。我不熟悉jquery和Ajax。所以请帮忙

我希望你有我想做的事。

4 个答案:

答案 0 :(得分:0)

将消息保存在变量

$message = null;

$current_date = date('Y/m/d');
$dob = $_POST['dob'];
if( strtotime ($_POST['dob']) >= strtotime($current_date) || ($dob > date("Y/m/d", mktime(0, 0, 0, date('m'), date('d'), date('Y') - 4) )) )
{
    $message = "<script> alert('Invalid date of birth') </script>";
    $valid = false;
}       

$adm_date = $_POST['adm_date'];
if( $adm_date < date("Y/m/d", mktime(0, 0, 0, date('m'), date('d'), date('Y') - 1)) )
{
    $message = "<script> alert('Admission/Registration Date is too old!') </script>";
    $valid = false;
}



if ($valid)
{
          mysql_query("INSERT into ........values .......");

      $message = "<script> alert('1 Record inserted!') </script>";
}

if ( $message ) {
    echo $message; // and alert will work here for the last message only..
}

答案 1 :(得分:0)

尝试使用if else

if (isset ($_POST['insert']))
{   
    $valid = true;
    $cellNo = $_POST['contact'];
    $current_date = date('Y/m/d');
    $dob = $_POST['dob'];
    $adm_date = $_POST['adm_date'];


    if( (empty($_POST['std_name'])) ){
        echo "<script> alert('Please Enter Student Name!') </script>";
        $valid = false;
    } elseif (!is_numeric ($_POST['contact']) || (strlen($cellNo) != 11) ){
        echo "<script> alert ('Mobile Number is not valid') </script>";
        $valid = false;
    } elseif( strtotime ($_POST['dob']) >= strtotime($current_date) || ($dob > date("Y/m/d", mktime(0, 0, 0, date('m'), date('d'), date('Y') - 4) )) ){
        echo "<script> alert('Invalid date of birth') </script>";
        $valid = false;
    }else{ 
    if( $adm_date < date("Y/m/d", mktime(0, 0, 0, date('m'), date('d'), date('Y') - 1)) ){
        echo "<script> alert('Admission/Registration Date is too old!') </script>";
        $valid = false;
        }
    }

    if ($valid){
              mysql_query("INSERT into ........values .......");

          echo "<script> alert('1 Record inserted!') </script>";
    }
}

答案 2 :(得分:0)

尝试为$valid提供不同的值,并根据

提醒
 if (isset ($_POST['insert']))
    {   
    $valid = 0;
     $cellNo = $_POST['contact'];
    $current_date = date('Y/m/d');
    $dob = $_POST['dob'];

    $adm_date = $_POST['adm_date'];
    if( (empty($_POST['std_name'])) )
    {
        $valid = 1;
    }
    else if (!is_numeric ($_POST['contact']) || (strlen($cellNo) != 11) )
    {
        $valid = 2;
    }
    else if( strtotime ($_POST['dob']) >= strtotime($current_date) || ($dob > date("Y/m/d", mktime(0, 0, 0, date('m'), date('d'), date('Y') - 4) )) )
    {
        $valid = 3;
    }       
    else if( $adm_date < date("Y/m/d", mktime(0, 0, 0, date('m'), date('d'), date('Y') - 1)) )
    {
        $valid = 4;
    }


    if($valid == 1 )
    {
        echo "<script> alert('Please Enter Student Name!') </script>";
    } 
    else if($valid == 2 )
    {
        echo "<script> alert ('Mobile Number is not valid') </script>";
    } 
    else if($valid ==3  )
    {
        echo "<script> alert('Invalid date of birth') </script>";
    } 
    else if($valid == 4  )
    {
        echo "<script> alert('Admission/Registration Date is too old!') </script>";
    } 
    else if ($valid == 0 )
    {
              mysql_query("INSERT into ........values .......");

          echo "<script> alert('1 Record inserted!') </script>";
    }

}

但我建议你不要这样做验证。而不是使用javascript或Jquery进行验证

修改

在jquery验证表单后自动转移到php代码部分。所以新的php编码看起来像

<?php
require_once('connection.php');
if (isset ($_POST['insert']))
{ 
   mysql_query("INSERT into ........values .......");

   echo "<script> alert('1 Record inserted!') </script>";
}
?>

答案 3 :(得分:0)

试试这个例子:

<?php
    function do_alert($msg) 
    {
        echo '<script type="text/javascript">alert("' . $msg . '"); </script>';
    }
?>
<html><head><title></title></head>
<body>

<?php
    do_alert("Hello");
?>
</body>
</html>