Не могу понять почему не работает :(
Уважаемые, помогите найти ошибку или исправить если что не так. Ломаю голову второй день.
Я велосипед не изобретаю, хочу получить обычный валидатор логина: $(document).ready(function() { $("#login").blur(function() { $("#msgbox").removeClass().addClass('messagebox').text('Проверка...').fadeIn("slow"); $.post("php/user_availability.php",{ user_name:$(this).val() }, function(data) { alert(data); if(data=='case1') { $("#msgbox").fadeTo(200,0.1,function() { $(this).html('Это имя уже занято').addClass('messageboxerror').fadeTo(900,1); }); } else { //если имя доступно $("#msgbox").fadeTo(200,0.1,function() { //тут прописывается сообщение о доступности имени $(this).html('Имя доступно для регистрации').addClass('messageboxok').fadeTo(900,1); }); } }); }); }); Имеется так же user_availability.php : <?php $user_name=$_POST['user_name']; include ("bd.php"); $result = mysql_query("SELECT id FROM users WHERE login='$user_name'",$db); $myrow = mysql_fetch_array($result); if (empty($myrow['id'])) { echo 'case1'; } if (!empty($myrow['id'])) { echo 'case2'; } ?> jquery подключен все как надо. Дело в том, что тот извесный пример (про рошана) прекрасно работал, но когда подключил БД, скрипт стал вести себя странно: user_availability.php прекрасно возвращает case1 или case2, после чего алертом прекрасно выводится case1 или case2, но когда проверятся условие if(data=='case1') неважно что выводил у нас алерт case1 или case2 это условие всеравно срабатывает и мне всегда выходит сообщение 'Это имя уже занято'. Условие просто не работает. Я уже менял везде и скобочки и кавычки с 1 на 2, с 2 на 1, условие всеравно не выполняется, в чем может быть причина ? |
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. Исправил ваше сообщение |
в вашем коде все вроде в порядке.
вы уверены, что выложили тот же код, который не работает? залейте на хостинг, пожалуйста свой пример, и скажите примеры занятого логина |
а какой есть бесплатный хостинг, где это можно быстро разместить ?
|
да любой.
тема бесплатного и дешевого хостинга уже обсуждалась тысячи раз. ищите. а тем временем, поставьте firebug и попробуйте по человечески отладить код. PS почему-то мне кажется, что замена строки $(this).html('Это имя уже занято').addClass('messageboxerror').fadeTo(900,1); на $(this).html('Это имя уже занято'+data+(data=='case1')+(data=='case2')).addClass('messageboxerror').fadeTo(900,1); что замена покажет много чего интересного попробуйте код для обоих случаев(валидного и невалидного логина) |
Часовой пояс GMT +3, время: 07:49. |