Страница 1 из 1
Как сохранить значение в переменную из vk.api(...)
Добавлено: 19 окт 2013, 16:36
akacuk21
Всем привет,
Пожалуйста объясните почему не получается записать значение в переменную city ? Бьюсь уже пол дня, ни в какую. В переменную ничего не сохраняется... Что я делаю не так? Спасибо.
Код: Выделить всё
... var city; VK.api("users.get", {uids:viewer_id,fields:"city"}, function(data) { city = data.response[0].city; });...
Re: Как сохранить значение в переменную из vk.api(...)
Добавлено: 19 окт 2013, 19:11
sasha^
это должно быть число, потом database.getCitiesById и все....
Re: Как сохранить значение в переменную из vk.api(...)
Добавлено: 20 окт 2013, 10:47
akacuk21
В том то и проблема, если использовать конструкцию следующего вида:
Код: Выделить всё
var city_id; VK.api("users.get", {uids:viewer_id,fields:"city, bdate"}, function(data) { city_id = data.response[0].city; bdate = data.response[0].bdate; }); VK.api("getCities", {cids:city_id}, function(data) { document.getElementById('user_info1').innerHTML = data.response[0].cid + ' ' + data.response[0].name + '<br />'; });
То функция getCities не работает, так как city_id пустое... Если вместо city_id вставить например '2' то покажет нормально, Санкт-Петербург. Следовательно делаю вывод что вторая функция рабочая, а вот в переменную city_id значения из первой функции не попадают... Почему ?
Re: Как сохранить значение в переменную из vk.api(...)
Добавлено: 20 окт 2013, 11:27
sasha^
при таком строении кода может и не работать.... ведь ajax-запрос асинхронный, а значит не известно какой из двух выполниться раньше.... потому еще, может, первый не выполниться, а второй уже просить данные о городе... сделай второй запрос в отдельную функцию, например, и ее вызывай после ответа с первого запроса...
примерно так:(не проверял...)
Код: Выделить всё
var city_id; VK.api("users.get", {uids:viewer_id,fields:"city, bdate"}, function(data) { city_id = data.response[0].city; getById();}); function getById() { VK.api("getCities", {cids:city_id}, function(data) { document.getElementById('user_info1').innerHTML = data.response[0].cid + ' ' + data.response[0].name + '<br />'; });}
Re: Как сохранить значение в переменную из vk.api(...)
Добавлено: 23 окт 2013, 09:16
akacuk21
Хм, почему то теперь аж обе переменные недоступны) Пытался даже в функцию передавать значение, ни в какую... странно... может есть другой какой то способ? А то прямо засада
Re: Как сохранить значение в переменную из vk.api(...)
Добавлено: 23 окт 2013, 10:50
sasha^
akacuk21,
database.getCitiesById - правильное название метода... я просто копипастнул у тебя функцию и доделал(не смотря заново ее)...
это должно быть число, потом database.getCitiesById и все....
вот... я же писал правильное название метода... можно было бы и заметить а не ждать ответа от других блин... и да... viewer_id существует и правилен? и еще...
city_ids, а не
cids..
а в ответе поля
name и
id...
неужели сложно глянуть?
http://vk.com/dev/database.getCitiesById