簡體   English   中英

AngularJS驗證

[英]Angularjs validate

我想使用ajax驗證表單,但錯誤未正確顯示。 這是我的代碼:

HTML

<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

$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);

顯示錯誤的用戶名,但未顯示錯誤檢查。

這是PHP的輸出

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

問題是您通過了$ scope.formdata,其中包含

{ user : 'someone', pass: 'abc123!', email: 'me@medotcom' }

您的PHP腳本正在查找發布數據{ username: 'someone' }

因此,將您的ng-model重命名為ng-model="formdata.username"或更改您的PHP以找到$_POST['user'] 您的選擇,但它們必須匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM