带有validate.js的Ajax从php返回未定义的结果

时间:2019-06-28 17:35:59

标签: javascript php jquery validate.js

大家好,我编写了一个演示代码来检查给定输入用户是否存在于列表中或不使用ajax和validate.js,当我运行代码时,所有功能都可以正常运行,但是为了获得成功函数中的响应消息,它正在跳转到错误函数并以php形式发送未定义的响应。

这是我的代码:

$.validator.addMethod("checkUserExists", function(value, element){           
            alert("input checking");
            var inputElem = $('#hl_form :input[name="username"]'),
                data = { "username" : inputElem.val(),"check": "userCheck"},
                eReport = ''; //error report

            $.ajax(
            {
                type: "POST",
                url: "services.php",
                async: true,
                dataType: 'json',
                data: data, 
                success: function(result)
                {
                    alert(result);
                    console.log(result);
                    if (result.status !== 'true')
                    {
                      return '<p>This User is already registered.</p>';
                    }else{
                       return true;
                    }
                },
                error: function(xhr, textStatus, errorThrown)
                {
                    //alert('ajax loading error... ... '+url + query);
                    return false;
                }
            });

        }, 'User Alread exist in the DB'); 

我的Validate.js规则和消息是

验证方法规则

username: {             
           required: true,          
           checkUserExists:true 
}

Validate.js方法消息

username: {             
           required: "Please enter your Username",           
           checkUserExists: "User... already exist"  
},

我的PHP代码(service.php)

<?php
    header('Content-Type: application/json');
    class form_services{
        public $sql;
        public $returnResult = array();
        function checkUser($requestedUser) {
            $registeredUser = array('xyz', 'abc', 'def', 'ghi', 'jkl');
            if( in_array($requestedUser, $registeredUser) ){
               $returnResult["status"] = 'false';
            }else{
                $returnResult["status"] = 'true';               
           }             
        return $returnResult;
        }


    } //Class Ends Here

    $checkRequest  = $_POST['check'];
    $frmServices = new form_services();
    $data = '';     
    switch ( $checkRequest) {       
    case 'userCheck':   $requestedUser  = $_REQUEST['username'];
                        $data = $frmServices->checkUser( $requestedUser);
                        echo json_encode($data);
                        break;      
          default:      echo json_encode($data);
                        break;
    }
    ?>

请帮助我解决问题,我在php cod的ajax调用中得到未定义的结果。

0 个答案:

没有答案