[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: запара с функцией и $.post
kuzroman
в общем пишем:


function checkLogin(){
var testLog = $login.attr('value');
var ret=1;
$.post(
'post/regUser.php',
{
login:testLog
},
function(data){
if(data.user==1) ret= testLog;
if(data.user==0) ret= testLog;
if(data.user==-1) ret= testLog;
$this_b.empty().append(ret);
alert(ret); // выводится вторым и со значением ret
}, 'JSON'
)

alert( ret ) // выводится первым с undefaned
return ret
}


как передать ret в return основной функции?



Спустя 9 минут, 6 секунд (16.12.2011 - 21:53) Игорь_Vasinsky написал(а):
чё блин с форумом. весь коммент в постах коверчит.

Спустя 1 минута, 46 секунд (16.12.2011 - 21:55) Игорь_Vasinsky написал(а):
наверно речь о рекурсии. если нужно передать аргумент в функцию, а аргумент является результатом этой функции.. что то в этом роде.. а зачем?

Спустя 45 минут, 6 секунд (16.12.2011 - 22:40) kuzroman написал(а):
Цитата (Игорь_Vasinsky @ 16.12.2011 - 18:55)
наверно речь о рекурсии. если нужно передать аргумент в функцию, а аргумент является результатом этой функции.. что то в этом роде.. а зачем?

я там отредактировал сообщение вначале, убрал функцию, она видимо от экспериментов осталась.
Тут что получается функцию checkLogin() хочу использовать в нескольких местах,

соот-но нужно чтобы она через return чтото возвращала ret.

а return этой функции приходит быстрей чем значение ret из post.

Спустя 4 минуты, 9 секунд (16.12.2011 - 22:44) Игорь_Vasinsky написал(а):
как это?

явно же видна последовательность

$.post

ret

ты просто из первой ф-и не вернул.

function checkLogin(){
var testLog = $login.attr('value');
var ret=1;
$.post(
'post/regUser.php',
{
login:testLog
},
function(data){
if(data.user==1) ret= testLog;
if(data.user==0) ret= testLog;
if(data.user==-1) ret= testLog;
$this_b.empty().append(ret);
alert(ret); // выводится вторым и со значением ret
return ret;
}, 'JSON'
)

alert( ret ) // выводится первым с undefaned
return ret
}

Спустя 8 минут, 14 секунд (16.12.2011 - 22:52) kuzroman написал(а):
тут ret явно объявлена перед второй функцией соответственно return ret;(т.е. она глобальна для post) и не пишу.
Ну и пробовал конечно и так делать, все равно в конце
alert( ret ) // выводит 1

Спустя 2 минуты, 45 секунд (16.12.2011 - 22:55) Игорь_Vasinsky написал(а):
тогда делай не if if if - а if elseif else

Спустя 3 минуты, 23 секунды (16.12.2011 - 22:58) kuzroman написал(а):
в общем оставил для наглядности только это
function checkLogin(){
$.post(
'post/regUser.php',
{},
function(data){
alert(1); // выводит вторым
}, 'JSON'
)
alert(0); // выводит первым
}


??????????? КАК ????

Спустя 12 минут, 25 секунд (16.12.2011 - 23:11) Игорь_Vasinsky написал(а):
здесь этой переменной ещё не существует, она не объявлена не в локальной зоне видимости, ни в глобальной. её просто нету.

Спустя 7 минут, 18 секунд (16.12.2011 - 23:18) kuzroman написал(а):
Цитата (Игорь_Vasinsky @ 16.12.2011 - 20:11)
здесь этой переменной ещё не существует, она не объявлена не в локальной зоне видимости, ни в глобальной. её просто нету.

вы о какой переменной говорите?
В последнем примере их нет.
Тут меня беспокоит очередность срабатывания alert
как в таком случае работать?
Может это мой локальный глюк, пойти поспать а завтра все само заработает)))?

Спустя 1 час, 4 минуты, 15 секунд (17.12.2011 - 00:22) redreem написал(а):
для post ret не глобальна. ты описываешь пост в теле checkLogin, но сама функция обработки результата - аноним, созданный в глобальном поле видимости. а просто прогнать ret до сервака в параметрах post и получить ее обратно не судьба?


_____________
kuzroman@list.ru
Быстрый ответ:

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