JSON. Как в callback функции изменить свойство объекта?
<?php echo '{ "foo": "SomeString" }'; ?> myObj = new Object(); myObj.foo = "test"; var foo; $.getJSON("php/json.php", "", function(json){ myObj.foo = json.foo; foo = json.foo; }); alert(myObj.foo); alert(foo); } Не могу понять как можно изменить свойство myObj.foo через getJSON? в переменной foo после получения данных содержится SomeString, а в myObj.foo - test :( |
myObj = new Object(); myObj.foo = "test"; var foo; $.getJSON("php/json.php", "", function(json){ myObj.foo = json.foo; foo = json.foo; alert(myObj.foo); alert(foo); }); } |
Не, это конечно работает. Но вопрос был не как получить алертом нужные значения, а как изменить в функции свойство объекта. Алерты я поставил, что бы отслеживать прошли ли изменения. Сами же свойства мною будут использоваться дальше. Так что, к сожалению, это решение не подходит.
Но, блин, порадовало. :haha: |
Запрос-то асинхронный. Код выполняется не дожидаясь, когда ответ придёт.
|
master_alf
Как подсказка, измените: sleep(10); echo '{ "foo": "SomeString" }'; будет снова выдавать foo - "SomeString" ? |
Как так? Данная функция обрабатывается когда приходит ответ от сервера.
Если вы про код ниже функции, то чем тогда объяснить то, что в переменной foo содержится правильное значение, полученное от сервера. А вот свойство объекта почему-то не изменяется. Скорее всего это как-то связано с областью видимости, но не могу ничего путнего нарыть. |
читать выше :nono:
|
Цитата:
Но это не отменяет вопроса. Как мне сделать так, что бы по получению ответа от сервера, свойство объекта изменялось? Мне нужно работать с объектами не только внутри коллбэк функции. :( Цитата:
|
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 02:59. |