您好我尝试使用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:我已经阅读了很多帖子以及回复的人建议的文档。这就是我如何回调。但是,我无法使我的回调工作。谢谢大家的答案!