[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: аякс запрос
dvs
Отправляю аяксом поле капчи, в php файле проверяю капчу, если совпадает то возращается 1(echo '1';) как мне вынести return true за $.ajax???

	if (saformerror == 0){
$.ajax({
url: "http://" + window.location.hostname + "/check_captcha.php",
type: "POST",
data: ({sacaptcha : $(".coderequired").val()}),
success: function(data){
if(data == 1){
//alert(data);
return true
}
}
});
}

return false




Спустя 10 минут, 11 секунд (17.09.2012 - 18:28) vagrand написал(а):

var ajaxResult = false;

$.ajax({
url: "http://" + window.location.hostname + "/check_captcha.php",
type: "POST",
data: ({sacaptcha : $(".coderequired").val()}),
success: function(data){
if(data == 1){
//alert(data);
ajaxResult = true;
}
}
}
);

alert(ajaxResult);

Спустя 10 минут, 40 секунд (17.09.2012 - 18:39) dvs написал(а):
Не получается, похоже переменная ajaxResult видится только в функции((

Спустя 22 минуты, 1 секунда (17.09.2012 - 19:01) vagrand написал(а):
Не может быть, видимо что-то вы делаете неправильно.

Спустя 6 минут, 52 секунды (17.09.2012 - 19:07) dvs написал(а):
и еще странно как то, раскомментировал
//alert(data);
И сначала получаю alert(ajaxResult); [false], а только затем alert(data) [1]

Спустя 3 минуты, 48 секунд (17.09.2012 - 19:11) vagrand написал(а):
Ну так AJAX послал себе запрос на сервер, а выполнение скрипта пошло себе дальше не ожидая ответа, а вот когда пришел ответ то и выполнился обработчик.

Спустя 2 часа, 13 минут, 4 секунды (17.09.2012 - 21:24) dvs написал(а):
Цитата (vagrand @ 17.09.2012 - 16:11)
а выполнение скрипта пошло себе дальше не ожидая ответа

Как дождаться ответа от аякса, а только потом дальше выполнять скрипт??

Спустя 42 минуты, 7 секунд (17.09.2012 - 22:06) DarkLynx написал(а):

var ajaxResult = false;
var succcess = 0;
$.ajax({
url: "http://" + window.location.hostname + "/check_captcha.php",
type: "POST",
data: ({sacaptcha : $(".coderequired").val()}),
success: function(data){
if(data == 1){
//alert(data);
ajaxResult = true;
success = 1;
}
}
}
);

if (success == 1)
alert(ajaxResult);

не?

Спустя 11 часов, 50 минут, 39 секунд (18.09.2012 - 09:57) vagrand написал(а):
DarkLynx
Цитата
не?


Нет, так не получится, т.к. как писалось выше проверка этого условия произойдет раньше результата обработчика ajax, а когда обработчик выполнится то это условия заново не будет вызвано.

dvs

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

Спустя 3 часа, 40 минут, 38 секунд (18.09.2012 - 13:38) Zzepish написал(а):
data: {"sacaptcha :" $(".coderequired").val()}

Спустя 4 дня, 13 часов, 19 минут, 36 секунд (23.09.2012 - 02:57) dvs написал(а):
vagrand
Цитата
Вам надо весь код, котрый должен выполнится в случае успешного вызова ajax поместить в отдельную функцию и вызывать ее в обработчике ajax-а.

Спасибо за совет! Проблема решилась после того как понял, что аякс работает асинхронно со скриптом. Вставил async: false, в отдельную функцию тоже вариант

Спустя 12 часов, 39 минут, 29 секунд (23.09.2012 - 15:37) Zzepish написал(а):
data: {"sacaptcha": $(".coderequired").val()} точнее так

Спустя 19 часов, 50 минут, 37 секунд (24.09.2012 - 11:27) dvs написал(а):
Цитата (Zzepish @ 23.09.2012 - 12:37)
data: {"sacaptcha": $(".coderequired").val()} точнее так

понял, взял на ум))
Быстрый ответ:

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