Да, просто замени весь шаблон на этот:
|

12.01.2011, 09:53
|
|
Интересующийся
|
|
Регистрация: 12.01.2011
Сообщений: 14
|
|
Переделал на массив
var dat = ["a"];
$.post("image2.php",{},function(data){
dat["a"] = data;
},'json');
alert(dat['a']);
this.smileys=eval(dat["a"]);
Без алерта не работает, хоть убей!!!
С НИМ все работает!!!
Народ!!! Научите, плиз, что не так делаю? как из функции изменить переменную?
|
|

12.01.2011, 10:03
|
 |
.
|
|
Регистрация: 30.03.2010
Сообщений: 1,813
|
|
|
уххххх ты меня что не понимаешь?=)))
function(data){
dat["a"] = data;
} - эта функция вызывается только тогда, когда приходит ответ от сервера
this.smileys=eval(dat["a"]); - а это происходит тогда когда компилятор проходит про нему, то есть до того как придёт ответ от сервера, а алертом ты просто делаешь задержку, поэтому и без него не получается.
__________________
.
|
|

12.01.2011, 10:13
|
|
Интересующийся
|
|
Регистрация: 12.01.2011
Сообщений: 14
|
|
Переделал на массив
var dat = ["a"];
$.post("image2.php",{},function(data){
dat["a"] = data;
},'json');
alert(dat['a']);
this.element=eval(dat["a"]);
Теперь хочу передать просто строку и уже создать объект вне этой функции...
Но со строкой тоже самое. без алерта эта конструкция попрежнему не работает 
|
|

12.01.2011, 10:17
|
 |
.
|
|
Регистрация: 30.03.2010
Сообщений: 1,813
|
|
|
мдаааа, у меня нет слов.
Вы читать умеете?
__________________
.
|
|

12.01.2011, 10:29
|
|
Интересующийся
|
|
Регистрация: 12.01.2011
Сообщений: 14
|
|
ух...
Ну все.. развернуто объяснил и я все понял... 
получается, мне после этой строчки надо как-то сидеть и ждать, пока dat будет не undefined?
Как это лучше сделать?
|
|

12.01.2011, 10:31
|
 |
.
|
|
Регистрация: 30.03.2010
Сообщений: 1,813
|
|
|
нет просто выполняйте все действия с ответом в самой функции.
$.post("image2.php",{},function(data){
ВОТ ТУТ Выполняйте все действия с ответом,
Можете вызвать другую функцию и передать ей данные
},'json');
__________________
.
|
|

12.01.2011, 10:39
|
|
Интересующийся
|
|
Регистрация: 12.01.2011
Сообщений: 14
|
|
|
ммм... все работает...
но так понимаю, что если сервер затянет с ответом, то все...
код, который использует дальше эти данные, может их не получить...
а не знаете, есть ли возможность делать post в синхронном режиме?
чтобы, либо отвалился с ошибкой, либо после получения ответа от сервера?
|
|

12.01.2011, 10:48
|
 |
.
|
|
Регистрация: 30.03.2010
Сообщений: 1,813
|
|
|
ananax,
нет вы не правильно поняли просто браузер не ждёт пока придёт ответ, если запрос асинхронный (в синхронном ждёт), а компилирует дальше.
__________________
.
|
|

12.01.2011, 10:53
|
|
Интересующийся
|
|
Регистрация: 12.01.2011
Сообщений: 14
|
|
|
вот вот...
переделываю на просто $.ajax
там есть возможность заставить его работать в синхронном режиме.
|
|

12.01.2011, 11:09
|
 |
.
|
|
Регистрация: 30.03.2010
Сообщений: 1,813
|
|
|
только в синхронном режиме, браузер будет зависать на время пока не придёт ответ от сервера.
__________________
.
|
|
|
|