2016-09-24 19 views
0

電子メールIDがすでにdbに存在するかどうかをチェックします。電子メールIDが存在する場合はfalseを返し、そうでない場合はtrueを返します。私は応答を得ることができません。私はコントローラコードとPHPコードを添付しました。正しい時 - Controller.js

signUpApp.controller("signUpCtrl",function($scope,$http){ 
     $scope.register = function(form,user){ 
      if (form.$valid) 
      { 
      $http.post("http://localhost/checkUser.php?email="+user.email) 
        .then(function(response){ 
         validUser=response; 
        }); 
      if(validUser=="true") 
      { 
       alert("valid user"); 
      } 
      else 
      { 
       alert("already exists"); 
      } 

      } 
     } 
    }); 

checkUser.php

<?php 
header("Access-Control-Allow-Origin: *"); 
header("Content-Type: application/json; charset=UTF-8"); 

$conn = new mysqli("localhost", "root", "", "user_details"); 
//$data = json_decode(file_get_contents("php://input")); 
//$email = mysql_real_escape_string($data->email); 
$email = $_POST['email']; 
$result = $conn->query("SELECT count(*) as count from user where email='$email'"); 

$outp = ""; 
$rs = $result->fetch_array(MYSQLI_ASSOC) 

    if ($rs['count']==0) 
    { 
     $outp ="true"; 
    } 
    else 
    { 
     $outp ="false"; 
    } 
$conn->close(); 

echo($outp); 
?> 

答えて

1

あなたは正しい場所、というかで応答を確認していない

[変数ValidUserというは定義されていません] 。

$http.postすぐに戻ります。 .thenコールバックは、サーバーから応答が返されたときに呼び出されます。 postifステートメント)を呼び出した後のコードは、$http.postが返された直後、およびサーバーから応答を受け取る前に実行されます。

あなたのコールバックの内側にあなたのバリデーションコードを配置する必要があります

$http.post(...).then(function(response) { 
    validUser = response; 
    if(validUser==="true") { 
     ... 
    } else if (validUser==="false") { 
     ... 
    } 
} 
+0

ifとelse部分をコールバック関数内に追加しました。まだ動作していません。 – Vimal

+0

デバッグ時間 - validUserには、それに含まれると思われるものが含まれていることを確認してください。 – zmbq

+0

それは今働いています。私はresponse.dataの代わりにレスポンスを使いました。たくさんありがとうございます。 – Vimal

0

あなたはif文が.thenコールバック内であることが必要だ、youreのAJAX要求はに応えれる前にそうあなたがそれをチェックしてしまいます

signUpApp.controller("signUpCtrl",function($scope,$http){ 
    $scope.register = function(form,user){ 
     if (form.$valid) 
     { 
     $http.post("http://localhost/checkUser.php?email="+user.email) 
       .then(function(response){ 
        validUser=response; 
        if(validUser=="true") 
        { 
        alert("valid user"); 
        } 
        else 
        { 
        alert("already exists"); 
        } 
       }); 
     } 
    } 
}); 
関連する問題