Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.04.2010, 15:17
Новичок на форуме
Отправить личное сообщение для storng Посмотреть профиль Найти все сообщения от storng
 
Регистрация: 09.04.2010
Сообщений: 3

Проверка наличия логина в БД при регистрации, с помощью ajax
Здравствуйте, уважаемые

Второй день думаю, всю голову сломал над алгоритмом реализации одной задачи.
И ведь наверняка не нужно изобретать велосипед, и кто-нибудь знает как правильно и толково можно её реализовать, посмотрите, пожалуйста.

Есть форма регистрации.
Человек вводит логин, и до того, как пустить его на скрипт регистрации (передать туда данные с формы) я хочу интерактивно проверить, есть такой логин в базе или нет.

Что я делал,

Вешал обработчик на форму onSubmit="return entersubmit();"

В функции обработчика мне с помощью ajax нужно проверить, есть ли такой логин или нет. И далее условие, если логин есть – то выдать сообщение, и не пустить дальше выполнение формы, т.е. вернуть return false, если логина нет, то пустить скрипт дальше выполняться.
Всё звучит хорошо, но я не успеваю это делать, если я в конце этой функции пишу return false, то даже если с помощью аякса я проверю и верну return true, переход к серверному скрипту с формы не происходит.

Вот подобие функции, которая вызывается при событии onSubmit



enterofff=0; // Глобальная переменная (знаю что ужасно, но ничего не могу придумать лучше)
function entersubmit()
{
loginformz=$('#loginenterform').val();

formenterdata='loginenterform='+loginformz;
$.post("checkenter.php", formenterdata,formenter);

if (enterofff==1)
{
return true;
}

return false;
}

Вот функция которая вызывается после отработки AJAX –пост запроса к серверу

function formenter(data,status)
{
if (data=='ok')
{
enterofff=1;
}
}

В таком случае, один раз кликаем по кнопке формы – форма не передаётся дальше серверному скрипту, но меняется значение глобальной переменной enterofff =1
При повторном клике уже происходит переход.
Но это абсолютно кривое решение, и оно меня не устраивает.
Пытался повесить проверку логина при смене фокуса, но тоже наверное криво это всё.

Подскажите, пожалуйста, как лучше с помощью аякса проверить есть ли логин в БД, если есть, то не пускать переход с формы на серверный скрипт, если нет логина – то пустить.

Всем спасибо за то что уделили 5 минут на мой пост.
Ответить с цитированием
  #2 (permalink)  
Старый 09.04.2010, 15:47
Новичок на форуме
Отправить личное сообщение для storng Посмотреть профиль Найти все сообщения от storng
 
Регистрация: 09.04.2010
Сообщений: 3

Вопрос, собственно, как лучше реализовать проверку логина с помощью AJAX в форме регистрации.
Если логин уже есть - то сообщить человеку, если нет логина - то пустить дальше на этап регистрации.

Т.е. интересует эта проверка без перезагрузок страниц.
Ответить с цитированием
  #3 (permalink)  
Старый 09.04.2010, 18:45
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

отправляешь ajax-запрос и отменяешь отправку формы, при получении ответа отправляешь форму программно (если нужно)
Ответить с цитированием
  #4 (permalink)  
Старый 09.04.2010, 19:24
Новичок на форуме
Отправить личное сообщение для storng Посмотреть профиль Найти все сообщения от storng
 
Регистрация: 09.04.2010
Сообщений: 3

Сообщение от x-yuri Посмотреть сообщение
отправляешь ajax-запрос и отменяешь отправку формы, при получении ответа отправляешь форму программно (если нужно)
Так у меня ведь и отменена отправка формы изначально, я отправляю аякс запрос, а вот отправить программно форму не пойму как, не подскажете?
Ответить с цитированием
  #5 (permalink)  
Старый 09.04.2010, 20:24
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

http://phpclub.ru/talk/showthread.ph...799#post896799
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При наборе адреса с www не работает AJAX (JQuery)! madmis AJAX и COMET 3 23.11.2009 19:03
Кодировка при использовании Ajax Nichloas AJAX и COMET 9 17.09.2009 16:06
Проверка имени пользователя при вводе st1512 AJAX и COMET 1 07.09.2009 09:58
Снятие затемнения с экрана при получении ответа от php срипта с помощью setInterval roma86 jQuery 0 16.08.2009 12:39
Проверка статуса checkbox при xmlhttprequest vvsh AJAX и COMET 3 06.08.2009 15:51