У меня есть регистрационная форма. Когда я нажимаю кнопку «Отправить», он должен проверить, не занято ли имя пользователя и совпадают ли пароли. Итак, я написал несколько функций: одну, которая проверяет пароли, одну, которая проверяет, доступно ли имя пользователя, и основную функцию, которая вызывает две функции проверки. Функция проверки пароля работает хорошо, но моя проблема с функцией проверки имени пользователя. Это функция:
function checkIsUsernameExist(){
if($("#txtNewUsername").val() == "") {
$("#divIsUsernameExist").html("");
return false;
} else {
$.getJSON("inc/API.php",
{
command : 'isUsernameExist',
username : $("#txtNewUsername").val(),
},
function(result)
{
if (result != true){
$("#divIsUsernameExist").html("This username is available!");
return true;
} else {
$("#divIsUsernameExist").html("This username is not available!");
return false;
}
});
}
}
Когда имя пользователя пусто, оно возвращает False. Но когда вводится какое-то значение, возвращается Undefined.
Кто-то сказал, что я должен использовать Synchronous JAX (но не сказал мне, как), поэтому я попытался написать этот код:
function checkIsUsernameExistAsync(){
if($("#txtNewUsername").val() == "") {
$("#divIsUsernameExist").html("");
return false;
} else {
$.ajax({
type: 'POST',
url: 'inc/API.php',
data: ({
command : 'isUsernameExist',
username : $("#txtNewUsername").val(),
cache: false,
async: false
}),
success: function(result){
if (result != true){
$("#divIsUsernameExist").html("This username is available!");
return true;
} else {
$("#divIsUsernameExist").html("This username is not available!");
return false;
}
}
});
}
}
Но я получаю тот же результат - Ложь, когда она пуста, Не определено, когда вводится какое-то значение. Я попытался изменить $.ajax
на $.getJSON
во второй функции, но все равно получил тот же результат.
Это код из API.php:
case "isUsernameExist":
echo (isUsernameExist($_REQUEST["username"]));
break;
он вызывает функцию на включенной странице BusinessLogic.php, вот эта функция:
function isUsernameExist($username)
{
$arr = select("select * from users where username='$username'");
if(count($arr) == 1)
return json_encode(true);
else
return json_encode(false);
}
Как я могу заставить его работать ??
Спасибо!