[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка проверки логина на уникальность в Mysql чер
zlojnaxa
Здравсвуйте ув. программисты!
Я начинающий не бейте больно smile.gif Есть страница регистрации с полем логина " index.php ".

Файл index.php

<?php header('Content-Type: text/html; charset=utf-8');?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Проверка формы</title> <meta http-equiv="content-type" content="application/xhtml+xml; charset=windows-1251" /> <script type="text/javascript" src="jquery-1.11.3.js"></script> <style> .inputRed{ border:1px solid #ff4040; background: #ffcece; } .inputGreen{ border:1px solid #83c954; background: #e8ffce; } </style> <!--///////////////////////////////////////////////////////////////////////--> <script type="text/javascript"> ////////////////////////////////////////////////////////////// var login; ////////////////////////////////////////////////////////////// $(function() { //Логин $("#login").change(function(){ login = $("#login").val(); var expLogin = /^[a-zA-Z0-9_]+$/g; //Еще вариант для поля логин: " var expLogin = /^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]{2,4}$/g; " var resLogin = login.search(expLogin); if(resLogin == -1){ $("#login").next().hide().text("Неверный логин").css("color","red").fadeIn(400); $("#login").removeClass().addClass("inputRed"); loginStat = 0; buttonOnAndOff(); }else{ $.ajax({ url: "register.php", type: "GET", data: "login=" + login, cache: false, success: function(response){ if(response == "no") { $("#login").next().hide().text("Логин занят").css("color","red").fadeIn(400); $("#login").removeClass().addClass("inputRed"); }else{ $("#login").removeClass().addClass("inputGreen"); $("#login").next().text("Логин свободен").css("color","green").fadeIn(400); } } }); loginStat = 1; buttonOnAndOff(); } }); $("#login").keyup(function(){ $("#login").removeClass(); $("#login").next().text(""); }); ////////////////////////////////////////////////////////////// function buttonOnAndOff(){ if(loginStat == 1){ $("#submit").removeAttr("disabled"); }else{ $("#submit").attr("disabled","disabled"); } } }); </script> </head> <body> <form action="#" method="post"> <label><font color='red'>*</font> Ваш Логин:<br></label> <input name="login" type="text" size="50" id="login"> <span></span><br> </form> </body> </html>


Юзер вводит логин и как только он переключается на следующее поле для заполнения срабатывает функция keyup(function() и рядом появляется надпись: логин занят либо логин свободен. Проверка на уникальность логина происходит через " ajax => какойто документ => MySql ". Но есть загвоздка, над которой уже 2 дня ломаю голову. Если в это поле ввести к примеру " ivan " который уже имеется в MySql, вылезит соответствующая надпись " логин занят ", но если не переключаясь на другие поля стереть и снова ввести " ivan " то уже надписи никакой не вылазит. Помогите пожалуйста кто нибудь. Подскажите в какую сторону копать. Как исправить, или что добавить в уже имеющийся код что бы все работало по логике?
По этой ссылке можно посмотреть скрипты в действии: http://cu99877.tmweb.ru/ Для пробы введите логин " naum ". Скрипты на бесплатном хостинге поэтому скопируйте ссылку в адр. строку )) Исходники файлов прикрепляю. Ссори заранее не знаю как правильно оформить и в какую тему писать.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.