json编码在php无法正常工作

时间:2017-03-26 06:43:45

标签: php angularjs json

这是我的代码。我想用angular和php检查验证 这是HTML。我想检查验证此表格

<form ng-submit="dk()">
<label for="">Name</label>
<input type="text" name="name" ng-model="formData.name">

{{errorName}}
    <button type="submit">Submit</button>
</form>
{{formData}}
{{message}}

这里是棱角分明的。我发送http请求到PHP代码

function dkController($scope,$http){
            $scope.formData ={};
            $scope.dk = function(){
                $http({
                    method:'POST',
                    url:'test.php',
                    data:$.param($scope.formData),

                }).then(onSuccess)

                function onSuccess(response){
                    $scope.mydata = response.data;
                    if($scope.mydata.success==false){
                        $scope.errorName = response.data.errors.name;
                    }else{
                        $scope.message = response.data.message;
                        $scope.errorName='';
                    }
                }
这是php。我在这里做检查代码

  <?php
    $data=array();
    $errors=array();
    $conn = mysqli_connect('localhost','root','','project'); 
    if(isset($_POST['name'])){
    $username =$_POST['name'];
    $sql="SELECT * FROM hoso where username='$username'";
    $result = mysqli_query($conn,$sql);
    if(mysqli_num_rows($result)>0){
        $errors['username']='You cant use this username';
    }
    }


    if(!empty($errors)){
        $data['success']=false;
        $data['errors']=$errors;
    }else{
        $data['success']=true;
        $data['message']='Success';
    }

    echo json_encode($data);
    ?>

这里是显示{"success":true,"message":"Success"} 我不知道为什么在这个json中没有错误。我哪里错了。请帮我 。谢谢

1 个答案:

答案 0 :(得分:0)

首先在你的角度方法onSuccess中只放下以下内容,更新如下

function onSuccess(response){
    $scope.mydata = response.data;
}

要查看您的内容,请将{{message}}替换为 {{mydata}} 通过这个你可以看到发生了什么 上面只是为了检查你从PHP脚本中获得了什么。以上代码不是解决方案 并且你的角度方法onSuccess也有错误,纠正你的角度值而不是response.data.errors.name;使用response.data.errors.username;

在完成我提到的所有更正后,请打印{{errorName }}并查看相关信息。

OR 只需使用以下
更新 HTML

<form ng-submit="dk()">
<label for="">Name</label>
<input type="text" name="name" ng-model="formData.name">

{{errorName}}
    <button type="submit">Submit</button>
</form>
{{formData}}
{{errorName}}

JS

function onSuccess(response){
    $scope.mydata = response.data;
    if($scope.mydata.success==false){
        $scope.errorName = response.data.errors.username;
    }else{
        $scope.message = response.data.message;
        $scope.errorName='Success msg';
    }
}