Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.12.2010, 14:41
Новичок на форуме
Отправить личное сообщение для anset Посмотреть профиль Найти все сообщения от anset
 
Регистрация: 25.08.2010
Сообщений: 6

JavaScript глобальные переменные
Есть скрипт на jquery, который отправляет запрос на север, а в data возращается число:
$.post("indexl.php", { option: "com_user", task: "chek"},
function (data){
id = data;
}
);
alert(id);

Алерт за пределами функции уже не видит эту переменную, как её получить за пределами функции?
Ответить с цитированием
  #2 (permalink)  
Старый 22.12.2010, 15:09
Ламер
Отправить личное сообщение для DooMer Посмотреть профиль Найти все сообщения от DooMer
 
Регистрация: 19.02.2010
Сообщений: 295

var id = null;
$.post("indexl.php", { option: "com_user", task: "chek"},
function (data){
id = data;
}
);
alert(id);
Ответить с цитированием
  #3 (permalink)  
Старый 22.12.2010, 15:33
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

alert выполняется до того, как пришёл ответ с сервера.
Ответить с цитированием
  #4 (permalink)  
Старый 22.12.2010, 16:08
Ламер
Отправить личное сообщение для DooMer Посмотреть профиль Найти все сообщения от DooMer
 
Регистрация: 19.02.2010
Сообщений: 295

Kolyaj,
ой, действительно тупанул, это ж аякс запрос )
Ответить с цитированием
  #5 (permalink)  
Старый 22.12.2010, 16:46
Новичок на форуме
Отправить личное сообщение для anset Посмотреть профиль Найти все сообщения от anset
 
Регистрация: 25.08.2010
Сообщений: 6

подскажите тогда, как все-таки можно вытащить переменную id или какую-то альтернативу данному коду.
Ответить с цитированием
  #6 (permalink)  
Старый 22.12.2010, 16:50
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Сообщение от anset Посмотреть сообщение
подскажите тогда, как все-таки можно вытащить переменную id или какую-то альтернативу данному коду.
На ваш вопрос ответили вторым комментарием.
До вызова аякса в глобальной видимости создайте переменную.
Ответить с цитированием
  #7 (permalink)  
Старый 22.12.2010, 17:00
Новичок на форуме
Отправить личное сообщение для anset Посмотреть профиль Найти все сообщения от anset
 
Регистрация: 25.08.2010
Сообщений: 6

Сообщение от Snipe Посмотреть сообщение
На ваш вопрос ответили вторым комментарием.
До вызова аякса в глобальной видимости создайте переменную.
А можно, пожалуйста, конкретней и с примером.
Если вы говорите о ниже приведенном коде, то здесь alert выдаст null:
var id = null;
$.post("indexl.php", { option: "com_user", task: "chek"},
function (data){
id = data;
}
);
alert(id);
Ответить с цитированием
  #8 (permalink)  
Старый 22.12.2010, 17:31
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Потому что на момент вызова ответ на запрос еще не получен. После получения запроса значение id будет таким, какой ответ пришел от сервера.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
глобальные и локальные переменные San4ezy Элементы интерфейса 4 10.10.2010 19:23
jQuery и переменные JavaScript master-sheff AJAX и COMET 2 22.01.2010 21:28
JavaScript Глобальные переменные MixMe Javascript под браузер 1 12.07.2009 14:04