我正在尝试使用PHP和Ajax检查用户是否存在数据。使用以下代码:
的Ajax
$('#btn_check_pc').click(function() {
username = $("#username").val();
$.ajax({
type: 'POST',
url: 'process.php',
data: "username=" + username,
dataType: 'json',
beforeSend: function() { //Do Something
},
success: function(response) {
if (response == 'used') {
console.log("Username Already In Use");
}
}
});
});
PHP
<?php
include_once "includes/get_data.php" ;
$username = $_POST["username"];
//Validating purchase
$checkUserRegistered = mysqli_query($db,"SELECT * FROM users WHERE username = '$username'") or die(mysqli_error($db));
if(!mysqli_num_rows($checkUserRegistered)){
// Do Something
}else{
echo 'used';
}
?>
因此,当我单击#btn_check_pc
按钮时,如果用户名已存在,则将使用PHP代码进行响应。我想用console.log("Username Already In Use")
显示它,但它没有显示。我在这里缺少什么来表明console.log()
任何人都可以帮助我?
答案 0 :(得分:0)
您没有使用提醒功能,因此您看不到任何提示框。
您的代码几乎是正确的。如果你想看到结果,那么在成功中使用alert函数代替console.log()函数:function(response){} blcok。
只需对数据类型进行注释:&#39; json&#39;在ajax里面。否则你可以使用数据类型:&#39; text&#39; .Reason是你的预期数据不是json类型。它是文本类型。
$('#btn_check_pc').click(function() {
username = $("#username").val();
$.ajax({
type: 'POST',
url: 'process.php',
data: "username=" + username,
// (alternative in case of data) data: {username:username},
dataType: 'text',
//(expected data is not json) dataType: 'json',
beforeSend: function() { //Do Something
},
success: function(response) {
if (response == 'used') {
console.log("Username Already In Use");
}
}
});
});
希望这会奏效。
答案 1 :(得分:-1)
您必须在代码中进行两处更改。
首先,因为你在ajax调用中使用了dataType json,所以你必须在php的响应中传递json
if(!mysqli_num_rows($checkUserRegistered)){
echo json_encode(["success"=>false]);
}else{
echo json_encode(["success"=>true]);
}
JS中的第二名。由于您通过POST调用ajax请求,因此您必须发送如下数据。
$.ajax({
...
data: {username: username}
...
});
然后在您的成功处理程序中,您可以像这样进行检查
success: function(response) {
if (response.success === true) {
console.log("Username Already In Use");
}
}