Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > JQuery. Вернуть результат из $.post


Автор: Vovan222 2.6.2011, 17:37
Всем привет есть такой код:
Код

 function checkRoom(startTime, id_room){
            $.post('ajaxCheckRoom',
                {
                    startTime : startTime,
                    id_room : id_room
                    
                },function(data){

                },'json'
            );
        }

Можно ли как-нибудь из функции checkRoom вернуть значение data?

Автор: нуп 2.6.2011, 18:05
Если запрос будет не асинхронный, то можно так сделать :
Код

function checkRoom(startTime, id_room){
     var data = '';
      $.ajax({
        type : 'POST',
        async : false,
        data : id_room,
        success : function(resp_data) { data = resp_data; }
    });
return data;
}

Автор: Vovan222 2.6.2011, 19:12
нуп, В том то и дело, что асинхронный

Автор: нуп 2.6.2011, 19:16
Та я бы тоже хотел такое увидеть smile 

Автор: Gold Dragon 3.6.2011, 08:18
сам с этим боролся, но пока не хватило времени полностью осознать, но вот это тебе должно помочь
http://xhtml.co.il/ru/jQuery/%D0%A7%D0%B0%D1%81%D1%82%D0%BE-%D0%B7%D0%B0%D0%B4%D0%B0%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5-%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B#%D0%9A%D0%B0%D0%BA_%D1%8F_%D0%BC%D0%BE%D0%B3%D1%83_%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C_%D0%B8_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80_%D0%BE%D1%82%D0%B2%D0%B5%D1%82_%D0%BE%D1%82_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0_AJAX.3F

Автор: Vovan222 3.6.2011, 09:44
Gold Dragon, Спасибо за ссылку. Сделал по примеру, все работает:
Код

 checkRoom( startTime, room, function(status){
   if( status ){
           // do something
   }
});

 function checkRoom(startTime, id_room, callback){
            $.post('ajaxCheckRoom',
                {
                    startTime : startTime,
                    id_room : id_room
                    
                },function(status){
                   callback(status);
                },'json'
            );
        }


Только немного не понятно, когда мы пишем
Код

 callback(status);

мы как бы возвращаем status в третий параметр функции  checkRoom

Автор: Gold Dragon 3.6.2011, 09:49
вот и говорю что с этими обратными вызовами ещё не разобрался smile А так понимаю функция гоняется до тех пор пока не получит содержание статуса. 

Автор: нуп 3.6.2011, 10:03
O_O скрипт пойдет дальше выполняться, а когда придет ответ, то выполнится callback  smile 

Автор: InfMag 5.6.2011, 18:00
Просто продолжение каких-либо действий пиши в callback-е. Таков принцип асинхронного кодинга.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)