2016-11-07 14 views
0

登録ページのコードは以前は動作していましたが、jqueryの"function submitForm()"の後に動作します。そして私はそれが上のアイコンでフラッシュを続ける、レジスタのフォームを実行するために開始します。登録フォームのプロンプトエラーが表示される

私register.phpに「1」ここ enter image description here

PHPコードエコー

<?php 

$_POST = array(); //workaround for broken PHPstorm 
parse_str(file_get_contents('php://input'), $_POST); 

    require_once 'dbConn.php'; 

    $message=''; 

    if($_POST) 
    { 
     $user_nric = $_POST['nric']; 
     $user_name = $_POST['name']; 
     $user_email = $_POST['email']; 
     $user_password = $_POST['password']; 
     $user_gender = isset($_POST['gender']) ? $_POST['gender'] : ''; 
     $user_role = isset($_POST['role']) ? $_POST['role'] : ''; 

     $password = md5($user_password); 

     try 
     { 
      $stmt = $conn->prepare("SELECT * FROM `user` WHERE nric=:nric"); 
      $stmt->execute(array(":nric"=>$user_nric)); 
      $count = $stmt->rowCount(); 

      if($count==0){ 

      $stmt = $conn->prepare("INSERT INTO user(nric,name,email,password,gender,role) VALUES(:nric, :name, :email, :password, :gender, :role)"); 
      $stmt->bindParam(":nric",$user_nric); 
      $stmt->bindParam(":name",$user_name); 
      $stmt->bindParam(":email",$user_email); 
      $stmt->bindParam(":gender",$user_gender); 
      $stmt->bindParam(":role",$user_role); 
      $stmt->bindParam(":password",$password); 
      //$stmt->bindParam(":jdate",$joining_date); 

       if($stmt->execute()) 
       { 
        echo "registered"; 
       } 
       else 
       { 
        echo "Query could not execute !"; 
       } 

      } 
      else{ 

       echo "1"; // not available 
      } 

     } 
     catch(PDOException $e){ 
      echo $e->getMessage(); 
     } 
    } 
?ここ

>

レジスタのjQuery:

$('document').ready(function() 
{ 
    /* validation */ 
    $("#register-form").validate({ 
     rules: 
     { 
      nric: { 
      required: true, 
      minlength: 9, 
      maxlength: 9, 
      nowhitespace: true 
      }, 
      name: { 
      required: true, 
      minlength: 3, 
      maxlength: 20, 
      lettersonly: true 
      }, 
      password: { 
      required: true, 
      minlength: 8, 
      maxlength: 15 
      }, 
      cpassword: { 
      required: true, 
      equalTo: '#password' 
      }, 
      email: { 
      required: true, 
      email: true 
      }, 
      gender: { 
       required: function() { 
        return $('[name="gender"]:checked').length; 
       } 
      }, 
      role: { 
       required: function() { 
        return $('[name="role"]:checked').length; 
       } 
      } 
     }, 
     messages: 
     { 
      nric:{ 
       required: "Please enter the valid nric", 
       minlength: "NRIC should be more than 9 characters", 
       maxlength: "NRIC should be less than 9 characters", 
       nowhitespace: "NRIC should not have any spaces" 
      }, 
      name: { 
       required: "please enter user name", 
       minlength: "Name should be more than 3 character", 
       maxlength: "Name should be less than 20 character", 
       lettersonly: "Name should contain only letter" 
      }, 
      password:{ 
         required: "please provide a password", 
         minlength: "password at least have 8 characters" 
        }, 
      email: "please enter a valid email address", 
      cpassword:{ 
         required: "please retype your password", 
         equalTo: "password doesn't match !" 
         }, 
      gender: { 
       required: "Select a gender" 
      }, 
      role: { 
       required: "Select a role" 
      } 
     }, 
     submitHandler: submitForm() 
     }); 
     /* validation */ 


     /* form submit */ 
     function submitForm() 
     {   
       var data = $("#register-form").serialize(); 

       $.ajax({ 

       type : 'POST', 
       url : 'register.php', 
       data : data, 
       beforeSend: function() 
       { 
        $("#error").fadeOut(); 
        $("#btn-submit").html('<span class="glyphicon glyphicon-transfer"></span> &nbsp; sending ...'); 
       }, 
       success : function(data) 
          {       
           if(data==1){ 

            $("#error").fadeIn(1000, function(){ 


              $("#error").html('<div class="alert alert-danger"> <span class="glyphicon glyphicon-info-sign"></span> &nbsp; Sorry nric already taken !</div>'); 

              $("#btn-submit").html('<span class="glyphicon glyphicon-log-in"></span> &nbsp; Create Account'); 

            }); 

           } 
           else if(data=="registered") 
           { 

            $("#btn-submit").html('<img src="../images/btn-ajax-loader.gif" /> &nbsp; Signing Up ...'); 
            setTimeout('$(".form-signin").fadeOut(500, function(){ $(".signin-form").load("register-success.php"); }); ',5000); 

           } 
           else{ 

            $("#error").fadeIn(1000, function(){ 

         $("#error").html('<div class="alert alert-danger"><span class="glyphicon glyphicon-info-sign"></span> &nbsp; '+data+' !</div>'); 

            $("#btn-submit").html('<span class="glyphicon glyphicon-log-in"></span> &nbsp; Create Account'); 

            }); 

           } 
          } 
       }); 
       return false; 
     } 
     /* form submit */ 

}); 
+0

エコー "1"が点滅しないようにするにはどうすればよいですか? – jwalkerman

+0

あなたのページでエラーを有効にして、それらを使って報告してください。コンソールも確認してください。 –

+0

私はデバッグを試みますが、エラーは返されません。 – jwalkerman

答えて

0

テーブルユーザーにnricがすでに存在する場合は、$ countがゼロに等しくないため、1をエコーし​​ます。ここから「1」を、エコー削除

if($count==0){ 

     $stmt = $conn->prepare("INSERT INTO user(nric,name,email,password,gender,role) VALUES(:nric, :name, :email, :password, :gender, :role)"); 
     $stmt->bindParam(":nric",$user_nric); 
     $stmt->bindParam(":name",$user_name); 
     $stmt->bindParam(":email",$user_email); 
     $stmt->bindParam(":gender",$user_gender); 
     $stmt->bindParam(":role",$user_role); 
     $stmt->bindParam(":password",$password); 
     //$stmt->bindParam(":jdate",$joining_date); 

      if($stmt->execute()) 
      { 
       echo "registered"; 
      } 
      else 
      { 
       echo "Query could not execute !"; 
      } 

     } 
     else{ 

      echo "1"; // not available 
     } 
+0

それでエコー1からそれを防ぐことができるものは何ですか?フォームをリフレッシュしても、エコー "1"がフラッシュされます。 – jwalkerman

+0

コメントthis line 'echo" 1 ";' –

+0

私はecho "1"とコメントしましたが、それでも動作できません。 – jwalkerman

0

次のコードを参照してください

else{ 

     echo "1"; // not available 

をし、それが何を返信してください。

+0

エコー "1"を削除しますが、それでもアイコンは点滅します。 – jwalkerman

+0

登録ページが開いたときにこれが起こっていますか?またはあなたが誰かを登録するとき? – RedZ

+0

登録ページを開くと起こります。 – jwalkerman

関連する問題