Добрый вечер, уважаемые участники форума. Возник вопрос, никак не могу понять с чем это дело есть.
Задача: в странице регистрации после проверки регуляркой корректности адреса электронной почты производится ajax-запрос, который отправляет на сервер введённый в поле ввода адрес е-мэйла, а сервер выдаёт результат (допустим 1, если такого адреса в базе данных нет и 2, если адрес в базе данных есть). Вот код:
function ajaxCheckEmail(email) {
//отправляем ajax-запрос на сервер для проверки существования адреса e-mail в базе данных
var req = getXmlHttp();//создаём AJAX объект
req.open('GET', 'http://sofakos.ru/registration.php?email=' + email, true);
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
window.acEmailResult = req.responseText;//записываем в глобальную переменную
}
}
}
req.send(null);
return window.acEmailResult;
FierBug показывает, что запрос отправляется, ответ от сервера корректный. Но вот беда, функция ajaxCheckEmail() выдаёт при певом вызове 'undefined', хотя должен быть 1 или 2. Также может перепутаться результат, хотя сервер отвечает корректно.
Проблема, как я понимаю, в глобальной переменной. А как тогда написать код потолковее, чтобы из обработчика асинхронного запроса возвращался корректный результат???
