2017-03-26 5 views
0

ajaxを使用してフォームを検証したいが、エラーが正しく表示されない。Angularjs validate

$conn= new mysqli('localhost','root','','dangky'); 
$username = isset($_POST['username']) ? trim($_POST['username']) : ''; 
$sql="SELECT *FROM dangky where username='$username'"; 
$result= mysqli_query($conn,$sql); 

$errors=array(); 
$data=array(); 
if(empty($username)) 
$errors['username']='user name is required'; 

if(mysqli_num_rows($result)>0){ 
$row = mysqli_fetch_assoc($result); 
    if ($row['username'] == $username){ 
     $errors['check'] = 'Tên đăng nhập đã tồn tại'; 
} 
} 
if(!empty($errors)){ 
    $data['success']=false; 
    $data['errors']=$errors; 
} 
echo json_encode($data); 

エラーユーザー名が表示されているが、エラーが表示されていないチェック

<body ng-app="app" ng-controller="dkController"> 
<form ng-submit="dk()"> 
<label>Username</label> 
<input type="text" name="username" ng-model="formdata.user"> 
{{errorName}} 
<label>Password</label> 
<input type="text" name="password" ng-model="formdata.pass"> 
<label>Email</label> 
<input type="text" name="email" ng-model="formdata.email"> 
<button type="submit" >Submit</button> 
{{message}} 

</form> 
</body> 

のJs

function dkController($http,$scope){ 
       $scope.formdata={}; 
       $scope.dk = function(){ 
        $http({ 
         method:"POST", 
         url:"dk.php", 
         data:$.param($scope.formdata) 
        }) 
        .then(function(response){ 
         $scope.errorName = response.data.errors.username; 
        }) 

とPHP

HTML: はここに私のコードです。

この問題はyouuがあなたのPHPスクリプトがポストデータ{ username: 'someone' }

を探している

{ user : 'someone', pass: 'abc123!', email: '[email protected]' } 

だからあなたの名前の変更が含まれている$ scope.formdataを通過しているPHPの出力

{"success":false,"errors":{"username":"user name is required"}} . 
+1

これらのリンクを読んでから、再度投稿してください。 https://meta.stackexchange.com/questions/10647/how-do-i-write-a-good-title – IsuruAb

答えて

0

ですng-modelをng-model="formdata.username"に変更するか、PHPを変更して$_POST['user']を探してください。あなたの選択は一致しなければなりません。