Ajax с validate.js возвращает неопределенный результат из php - PullRequest
0 голосов
/ 28 июня 2019

Hello All, я написал один демонстрационный код, чтобы проверить, существует ли данный входной пользователь в списке или не использует ajax и validate.js, когда я запускаю код, все функции выполняются нормально, ноПолучив ответное сообщение в функции succes, он переходит к функции ошибки и выдает неопределенный ответ в виде отправленной формы 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;
    }
    ?>

Пожалуйста, помогите мне в решении моей проблемы, я получаюнеопределенный результат в вызове ajax из php cod.

...