使用回调时,AJAX调用返回undefined

时间:2017-06-18 06:45:42

标签: javascript php jquery ajax callback

您好我尝试使用PHP函数和AJAX从我的数据库中获取数据。我读到使用async : false来获取值并不值得推荐,所以我尝试使用回调但我无法获得该值。

我的js / jquery:

$('.inputUsuario').on('keyup change paste blur', function(){
    var inputValue = $(this).val();
    var msj = "Usuario solo acepta letras y numeros.";
    validarUsuario(inputName);
});

function validarUsuario(i){
   if(validateUser(i) != 0){
      console.log('exists');
   } else {
      console.log('available');
   }
}

function validateUser(i){
    var resultado;
    userExists(i, function(d){
        resultado = d.replace(/\s+/g, '');
        console.log("1: "+resultado);
    });
    console.log("3: "+resultado);
    return resultado;
}

function userExists(i, callback){
    return $.ajax({
        url: "includes/functions/userExists.php",
        type: "POST",
        data: 'usuario='+i,
        success: function(data){
                callback(data);
            }
        });    
}

- 我已经使用了replace,因为data.responseText在字符串之前带有一堆空格。 -

我的PHP:

<?php 
require_once('bd_conexion.php');
if(isset($_POST['usuario'])){
    $user = $_POST['usuario'];
    $user = $conn->real_escape_string($user);
    $user = h($user);
    try{
        $stmt = $conn->prepare('SELECT COUNT(*) FROM `usuarios` WHERE usuario = ?;');
        $stmt->bind_param('s', $user);
        $stmt->bind_result($num);
        $stmt->execute();
        while($stmt->fetch()){
            echo $num;
        }
        $stmt->close();
        $conn->close();    
    } catch (Exception $e){
        echo $e->getMessage();
    }
}

function h($s){
    return htmlentities(htmlspecialchars($s, ENT_QUOTES, 'utf-8'), ENT_QUOTES);
}
?>

- 我已经检查过该查询是否正常运行,并且它正在向我提供我需要的值,但它并没有退出AJAX -

PD:我已经阅读了很多帖子以及回复的人建议的文档。这就是我如何回调。但是,我无法使我的回调工作。

谢谢大家的答案!

0 个答案:

没有答案