Есть простой скрипт, но он не работает. Почему?
<script>
function loadMessage(v_web_id)
{
v_login = document.getElementById('id_login').value;
v_password = document.getElementById('id_password').value;
result = 0;
$.ajax({
type: "POST",
url: "login_user.php",
cache: false,
datatype: "text",
data: "web_id=" + v_web_id + "&login=" + v_login + "&password=" + v_password,
success: function(msg)
{
result = msg;
alert(msg);
},
error: function(msg)
{ // Данные не отправлены
alert(msg);
}
});
alert(result);
v_message = document.getElementById('message');
v_login_form = document.getElementById('login_form');
v_exit_form = document.getElementById('exit_form');
if(result == 1)
{
v_message.innerText = 'Проверка успешная. Все ок.';
v_login_form.style.display = "none";
v_exit_form.style.display = "none"; }
if(result == 2)
{
v_message.innerText = 'Для учетной записи ' + v_login + ' указан неправильный пароль';
}
if(result == 3)
{
v_message.innerText = 'Учетная запись ' + v_login + ' не существует';
}
return false;
}
</script>
Здравствуйте, Funny Rabbit, Вы писали:
FR>Здравствуйте, Funny Rabbit, Вы писали:
FR>Отрабатывает только часть error. Почему не понятно, лично мне.
А ты уверен, что не отрабатывает обработчик события "success", описанный в этом фрагменте?
success: function(msg)
{
result = msg;
alert(msg);
}
Я не силен в JavaScript'е, но сдается мне, что у тебя фрагмент, выделенный в листинге ниже жирным, возвращает "0":
result = 0;
$.ajax({
....
});
alert(result); // <-- вот здесь выводится "0" ?
...
Если я прав, то все отрабатывает корректно.
Другой вопрос, что ты, скорее всего, ожидаешь другого поведения (не нулевого результата)?
Вообще попробуй ради интереса к if-ам добавить еще такой:
if(result == 0) {
v_message.innerText = 'На момент выполнения этого кода AJAX-запрос еще не отработал ;)';
}
Может быть это сообщение и выведется?
Красота — наивысшая степень целесообразности. (c) И. Ефремов