Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вытащить переменную из функции JQuery 
:(
    Опции темы
WolfAlone
  Дата 25.5.2010, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5



Здравствуйте уважаемые! Подскажите пожалуйста по такому вопросу:

Подключена JQuery 1.3.2, есть функция JavaScript:
Код

function getStr(id)
  {
    $.get('get.php?id='+id, function(data){
    str=data;
  });
}


В выше указанном коде, в переменной дата содержится строка, которую возвращает скрипт (например "100"). Как это значение (значение переменной "data") присвоить глобальной переменной? Как только ни пробовал, ничего не вышло...  smile 


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
нуп
Дата 25.5.2010, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 8
Всего: 33



Та вроде все правильно, попробуй объявить переменную выше описания функции  smile 
PM MAIL   Вверх
WolfAlone
Дата 25.5.2010, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5



Я пробовал и "выше" и "ниже" и по всякому! Ничего у меня не получилось почему-то!  smile 


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
нуп
Дата 25.5.2010, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 8
Всего: 33



А такое же название переменной нету больше?!
PM MAIL   Вверх
WolfAlone
Дата 25.5.2010, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5



Нет, это по сути вся программа! Если определить переменную с таким же именем до функции, то ей не присваивается новое значение внутри той функции (т.е. её значение просто остается неизменным). Причем я пробовал объявлять её как с ключевым словом "var", так и без него (пробовал объявлять во всевозможных местах программы).

Самое интересное, что почему-то, такое происходит только с JQuery (*по моим наблюдениям [другие фреймворки не проверял]), при использовании "обычной" функции, переменная почему-то получает другое значение...  smile 

Это сообщение отредактировал(а) WolfAlone - 25.5.2010, 20:28


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
нуп
Дата 25.5.2010, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 8
Всего: 33



Код

 $(document).ready(function(){

    var $str = 'bbbb';
    function test()
    {
        $str = 'aaaa';
    }
    
    test();
    alert($str);


У меня так работает  smile 
PM MAIL   Вверх
ex3c
Дата 26.5.2010, 04:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 22.5.2010

Репутация: 1
Всего: 1



нуп, переменная будет существовать только внутри document.ready.


WolfAlone, 

Код

var str = null;
function getStr(id)
  {
    $.get('get.php?id='+id, function(data){
    str=data;
  });
}

PM MAIL   Вверх
WolfAlone
  Дата 26.5.2010, 08:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5



ex3c, сделал как Вы порекомендовали!
Код

var str = null; //Тут так же пробовал: str=null; - эффекта не дало.
            function getStr(id)
            {
                $.get('get.php?id='+id, function(data){
                    str=data;
                    //Тут alert(str); - выдает правильный результат
                });
            }
            getStr(10);
            alert(str); //А тут он выдает null.

Alert выдает "null", при этом внутри функции тот же alert выдает правильный результат...  smile 


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
ksnk
Дата 26.5.2010, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 38
Всего: 386



WolfAlone, Ajax - Asynchronous Javascript and XML — «асинхронный JavaScript и XML»/ Ключевое слово асинхронный. То есть get и , соответственно callback этого get'а выполниться когда-нибудь потом, когда серверу приспичит получить запрос, обработать и выдать таки результат. вот тогда. когда юзер в недоумении уставится на неизменившийся str, вот только тогда этот str измениться и javascript гордо начнет работать дальше...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
WolfAlone
Дата 26.5.2010, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: нет
Всего: 5



ksnk, спасибо огромное! До меня как раз самого долшло  smile 
Как выяснилось, действительно, сначала выполняется выполняется функция а потом уже скрипт получает ответ на запрос и присваивает значение переменной... В данный момент как раз решаю эту проблему, уже есть наметки. Позже отпишусь о результатах, думаю кому-нибудь ещё будет интересно.

Спасибо!


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0606 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.