2016-08-29 9 views
0

Jqueryとajaxを初めて使用しています。メールIDが既にデータベースに存在するかどうかを確認します。だから私はAjaxを使って電子メールが存在するかどうかをチェックします。フォームの送信中にこの条件をチェックするので、onSubmitイベントを使用します。 送信ボタンを押すと、上記の条件がチェックされ、データベースに挿入されます。しかし、条件が満たされなかった場合、そのメールもデータベースに挿入されます。 エラーは何ですか?私はこのエラーが私を助けてください見つけることができません! 私のhtmlコードは次のとおりです。jquery、Ajaxを使用して情報が無効である場合、データがデータベースに送信される

<?php 
    $con = new mysqli('localhost','root','','registration');   //set coonection to db 
    $mail = $_POST['emailid']; 
    $query = mysqli_query($con, "select email from user where email='".$mail."' "); 
    if(mysqli_num_rows($query) > 0) 
    { 
     echo '1';              // if mail exist 
    } 



?> 

<body> 
<div class="container"> 
     <div class="row"> 
      <div class="col-md-3"> 
      </div> 
      <div class="col-md-6"> 
       <div class="inner"> 
        <h3>Registration</h3> 
        <form class="form-horizontal" method="post" action = "" onSubmit=" return checkmail();"> 
         <div class="form-group"> 
          <label for="inputEmail3" class="col-sm-3 control-label">Firstname</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="inputEmail3" placeholder="Firstname" name="fname"> 
          </div> 
         </div> 
         <div class="form-group"> 
          <label for="inputEmail3" class="col-sm-3 control-label">Lastname</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="inputEmail3" placeholder="Lastname"name="lname"> 
          </div> 
         </div> 
         <div class="form-group"> 
          <label for="inputEmail3" class="col-sm-3 control-label">Email</label> 
          <div class="col-sm-9"> 
           <input type="email" class="form-control" id="email" placeholder="Email" name="email" > 
           <span id="check"></span> 
          </div> 
         </div> 
         <div class="form-group"> 
          <label for="inputPassword3" class="col-sm-3 control-label">Password</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="pass" placeholder="Password" name="pass" > 
          </div> 
         </div> 
         <div class="form-group"> 
          <label for="inputPassword3" class="col-sm-3 control-label">re-Password</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="repass" placeholder="re-Password"> 
          </div> 
         </div> 
         <div class="form-group"> 
          <label for="inputEmail3" class="col-sm-3 control-label">Mobile no</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="mob" placeholder="Mobile no" name="phone"> 
          </div> 
          <h6 id="aaa"></h6> 
         </div> 
         <div class="form-group"> 
          <label for="inputEmail3" class="col-sm-3 control-label">Address1</label> 
          <div class="col-sm-9"> 
           <textarea class="form-control" id="inputEmail3" placeholder="Address1" name="addr1"></textarea> 
          </div> 
         </div> 
         <div class="form-group"> 
          <label for="inputEmail3" class="col-sm-3 control-label">Address2</label> 
          <div class="col-sm-9"> 
           <textarea class="form-control" id="inputEmail3" placeholder="Address2(optional)"name="addr2"></textarea> 
          </div> 
         </div> 
         <div class="form-group"> 
          <label class="control-label col-sm-3" >Country</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="inputEmail3" placeholder="Country" name="country"> 
          </div> 
         </div> 
         <div class="form-group"> 
          <label class="control-label col-sm-3" >State</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="inputEmail3" placeholder="State" name="state"> 
          </div> 
         </div> 
         <div class="form-group"> 
          <label class="control-label col-sm-3" >City</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="inputEmail3" placeholder="City" name="city"> 
          </div> 
         </div>     
         <div class="form-group"> 
          <label for="inputEmail3" class="col-sm-3 control-label">Zipcode</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="zip" placeholder="EX:456322" name="zip" > 
          </div> 
         </div> 
         <div class="form-group"> 
          <div class="col-sm-offset-2 col-sm-10"> 
           <input type="submit" class="btn btn-default" name="submit" value="Register">      
          </div> 
         </div> 
        </form> 
       </div> 
      </div> 
      <div class="col-md-3"> 
      </div> 
     </div> 
    </div> 

私のjQueryの関数は

function checkmail(){ 
       var mail= $('#email').val(); 
       if(mail ==""){ 
        $("#email").focus(); 
        alert("Enter mail id"); 
        return false; 
       } 
       else 
       { 
        $.ajax({ 
         type:'post', 
         url :'check.php', 
         data: {emailid:mail}, 
         success: function(responseText){ 
          $("#check").html(responseText); 
          if(responseText != 1) { // if the response is 1 
           $("#check").html("Available!"); 
           return true; 
          } 
          else { 
           // else blank response           
           $("#email").focus(); 
           $("#check").html("Email are already exist."); 
           return false; 
          } 
         } 
        }); 
       } 
      } 
    </script> 

あるcheck.phpは事前にお願いします。

答えて

0

あなたはこのような何か行う必要があります。

 <form class="form-horizontal" method="post" action = "" onSubmit="checkmail()"> 

を、右のbodyタグの開始後にスクリプトを置きます。

私はいくつかの変更を加えたコードの下にjqueryの

$("#form-id").on('submit',function(e){ 
e.preventDefault(); 

// Validation for data 
}); 
+0

として保持しかし、もしそれがデータベースにデータを挿入する変更に応じて、フォームのID、メールは既に存在しています – Alex

+0

try thi (responseText!= '1')if(responseText!= 1) エコーが文字列です –

0

使用からこれを行うには、あなたをお勧めします。

HTML

<body> 
<div class="container"> 
     <div class="row"> 
      <div class="col-md-3"> 
      </div> 
      <div class="col-md-6"> 
       <div class="inner"> 
        <h3>Registration</h3> 
        <form id="myForm" class="form-horizontal" method="post" action=""> 
         <div class="form-group"> 
          <label for="inputEmail3" class="col-sm-3 control-label">Firstname</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="inputEmail3" placeholder="Firstname" name="fname"> 
          </div> 
         </div> 
         <div class="form-group"> 
          <label for="inputEmail3" class="col-sm-3 control-label">Lastname</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="inputEmail3" placeholder="Lastname"name="lname"> 
          </div> 
         </div> 
         <div class="form-group"> 
          <label for="inputEmail3" class="col-sm-3 control-label">Email</label> 
          <div class="col-sm-9"> 
           <input type="email" class="form-control" id="email" placeholder="Email" name="email" > 
           <span id="check"></span> 
          </div> 
         </div> 
         <div class="form-group"> 
          <label for="inputPassword3" class="col-sm-3 control-label">Password</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="pass" placeholder="Password" name="pass" > 
          </div> 
         </div> 
         <div class="form-group"> 
          <label for="inputPassword3" class="col-sm-3 control-label">re-Password</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="repass" placeholder="re-Password"> 
          </div> 
         </div> 
         <div class="form-group"> 
          <label for="inputEmail3" class="col-sm-3 control-label">Mobile no</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="mob" placeholder="Mobile no" name="phone"> 
          </div> 
          <h6 id="aaa"></h6> 
         </div> 
         <div class="form-group"> 
          <label for="inputEmail3" class="col-sm-3 control-label">Address1</label> 
          <div class="col-sm-9"> 
           <textarea class="form-control" id="inputEmail3" placeholder="Address1" name="addr1"></textarea> 
          </div> 
         </div> 
         <div class="form-group"> 
          <label for="inputEmail3" class="col-sm-3 control-label">Address2</label> 
          <div class="col-sm-9"> 
           <textarea class="form-control" id="inputEmail3" placeholder="Address2(optional)"name="addr2"></textarea> 
          </div> 
         </div> 
         <div class="form-group"> 
          <label class="control-label col-sm-3" >Country</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="inputEmail3" placeholder="Country" name="country"> 
          </div> 
         </div> 
         <div class="form-group"> 
          <label class="control-label col-sm-3" >State</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="inputEmail3" placeholder="State" name="state"> 
          </div> 
         </div> 
         <div class="form-group"> 
          <label class="control-label col-sm-3" >City</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="inputEmail3" placeholder="City" name="city"> 
          </div> 
         </div>     
         <div class="form-group"> 
          <label for="inputEmail3" class="col-sm-3 control-label">Zipcode</label> 
          <div class="col-sm-9"> 
           <input type="text" class="form-control" id="zip" placeholder="EX:456322" name="zip" > 
          </div> 
         </div> 
         <div class="form-group"> 
          <div class="col-sm-offset-2 col-sm-10"> 
           <input type="button" onClick="checkmail();" class="btn btn-default" name="submit" value="Register">      
          </div> 
         </div> 
        </form> 
       </div> 
      </div> 
      <div class="col-md-3"> 
      </div> 
     </div> 
    </div> 

jQueryのコード

function checkmail(){ 
       var mail= $('#email').val(); 
       if(mail ==""){ 
        $("#email").focus(); 
        alert("Enter mail id"); 
        return false; 
       } 
       else 
       { 
        $.ajax({ 
         type:'post', 
         url :'check.php', 
         data: {emailid:mail}, 
         success: function(responseText){ 
          $("#check").html(responseText); 
          if(responseText != 1) { // if the response is 1 
           $("#check").html("Available!"); 
           $("#myForm").submit(); 
          } 
          else { 
           // else blank response           
           $("#email").focus(); 
           $("#check").html("Email are already exist."); 
           return false; 
          } 
         } 
        }); 
       } 
      } 

あるmyForm

+0

このコードは有効かどうかをチェックしますが、電子メールが利用可能な場合はデータベースに挿入されません。 – Alex

+0

'$("#myForm ")。submit()'このコードは、以前に送信したのと同じ方法でフォームを送信します。それ以外のものはありません –

+0

私はこれを試しますが、メールが利用可能であればデータベースにデータを挿入しません – Alex

関連する問題