2014-01-25 56 views
0

下面的程序包含在特定条件下显示的各种错误消息。这些条件可以通过PHP代码找到,然后在PHP中回显必要的JQuery脚本以显示消息。JQuery函数未运行

首先,.warning类中的所有消息都是隐藏的。然后,如果满足某个条件,则会显示此类的特定ID。以下是相关的代码。

<?php require_once 'connection.php'; ?> 
<!-- 
To change this template, choose Tools | Templates 
and open the template in the editor. 
--> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Create Account</title> 
     <link rel="stylesheet" type="text/css" href="Styles2.css"> 
     <script src="JQuery.js"></script> 
    </head> 
    <body> 

     <script> 

    $(document).ready(function(){ 

$('.warning').hide(); 

}); 


    </script> 

    <div class="unloggedheadingbar"> 

    </div> 

    <br> 

    <div class="createaccount"> 

     <center><h1>Create Account</h1></center> 

    <center><table> 
     <form action="create_account.php" method="post"> 

     <tr><td><font class="createaccountfont">Email</font></td><td><input type="text" name="Email" placeholder="[email protected]" value="<?php if(isset($_POST['Create'])){ echo $_POST['Email']; } ?>" class="createaccounttext"></td></tr> 
     <tr><td colspan="2"><br></td></tr> 
     <tr><td><font class="createaccountfont">Password</font></td><td><input type="password" name="Password" class="createaccounttext"></td></tr> 
     <tr><td colspan="2"><br></td></tr> 
     <tr><td><font class="createaccountfont">Confirm Password&nbsp;&nbsp;</font></td><td><input type="password" name="ConfirmPassword" class="createaccounttext"></td></tr> 

    </table></center> 

     <br> 

     <center><input type="submit" name="Create" value="Create Account" class="createButton" id="Create"></center> 

     </form> 

      <br>  

      <div class="warning" id="passwordMatchError"> 
       <center><font class="warningText">Your password confirmation must match with your original password!</font></center> 
      </div> 

      <div class="warning" id="emailFormatError"> 
       <center><font class="warningText">Your email must match the [email protected] format.</font></center> 
      </div> 

      <div class="warning" id="emailDuplicateError"> 
       <center><font class="warningText">An account under this email already exists.</font></center> 
      </div> 

     </div> 

    <?php 

    if(isset($_POST['Create'])){ 

     $email = $_POST['Email']; 
     $password = md5($_POST['Password']); 

     if(strpos($email, '@') !== TRUE){ 

      echo '<script> 

       $(".warning").hide(); 

       $("#emailFormatError").show(); 

        </script>'; 

     }elseif($_POST['Password'] != $_POST['ConfirmPassword']){ 

      echo '<script> 

       $(".warning").hide(); 

       $("#passwordMatchError").show(); 

        </script>'; 

     }else{ 

     $query = "SELECT * FROM user_table WHERE Email = '" . $email . "';"; 
     $result = mysqli_query($con, $query); 

     if(mysqli_num_rows($result) == 0){ 

     $query = "INSERT INTO user_table VALUES ('" . $email . "', '" . $password . "');"; 
     mysqli_query($con, $query); 

     }else{ 

      echo '<script> 

       $(".warning").hide(); 

       $("#emailDuplicateError").show(); 

        </script>'; 

     } 

     } 
    } 

    ?> 

</body> 

然而,随着特定ID的对象并不实际显示。有谁知道这可能是为什么?谢谢。

回答

1

jQuery的动作应该放在$(document).ready(function() {});,即:

echo '<script>$(document).ready(function() { 
    $(".warning").hide(); 
    $("#emailFormatError").show(); 
});</script>'; 
+0

这工作,谢谢! – user2938543