проверьте, существует ли имя пользователя с помощью bvalidator (плагин проверки jquery) - PullRequest
0 голосов
/ 13 февраля 2012

Я использую bvalidator (плагин проверки jquery), чтобы проверить, существует ли имя пользователя в базе данных.У них есть пример в их документации.Тем не менее, я понятия не имею, как это работает.Вы можете прочитать больше об этом примере здесь: http://karmela.fsb.hr/~bmauser/bvalidator/documentation.html#serversidevalidation

Я пытался создать свой собственный.Тем не менее, это всегда говорит мне, что имя пользователя уже занято, несмотря ни на что ... Я полный новичок, когда дело доходит до AJAX.Я едва знаю это.Так или иначе, вот что я создал до сих пор ...

index.php (главная страница)

<script type="text/javascript">
$(document).ready(function () {
$('#register').bValidator(optionsRed);
});
function checkUsername(username) {
    $.post("checkusername.php", { username: username }, function(data) {
        if (data == 0) {
            ret = true;
        } else {
            ret = false;
        }
        return ret;
    });
}
</script>

<input type="text" name="username_register" id="textstyleid" data-bvalidator="checkUsername,required,rangelength[5:20]" data-bvalidator-msg="This username is not valid or already taken."/>

checkusername.php (проверяет, существует ли имя пользователя)

<?php

require '../connect.inc.php';
if (isset($_POST['username'])) {
$username = mysql_real_escape_string($_POST['username']);
if (!empty($username)) {
$username_query = mysql_query("SELECT COUNT(uid) FROM users WHERE username='$username'");
$username_result = mysql_result($username_query, 0);

if ($username_result == 0) {
return 0;
} else if ($username_result == 1) {
return 1;
}
}
}

?>

Редактировать Я заметил ошибку 404.Я исправил это.PHP и AJAX работает.Это дает мне 0 или 1 в зависимости от текста, введенного в предварительном просмотре.Тем не менее, проблема все еще существует.Я думаю, что это из-за этой строки кода.Я не очень понимаю, что это значит.Что такое данные ?:

if (data == 0) {
    ret = true;
} else {
    ret = false;
}
return ret;

Ответы [ 2 ]

0 голосов
/ 18 декабря 2012

Попробуйте это

if (data == 0) {
    echo json_encode(TRUE);
} else {
    echo json_encode(FALSE);
}
0 голосов
/ 13 февраля 2012

Если посмотреть дальше, проблема заключается в вашем php, вам нужно использовать mysql_num_rows вокруг вашего результата, чтобы сравнить его с 0 возвратами, сам объект результата даст только идентификатор ресурса ua, если echo'ed out

...