Страница 1 из 1

Передача данных между функциями.

Добавлено: 26 апр 2013, 21:34
Padme
Здравствуйте.
Я хочу центрировать карту гугл по городу, где проживает пользователь, запустившый приложение. Карту я создала. Даже центрировала её для проверки. Город я нашла, даже вывела его в <div>, но вот передать название в функцию центрирующую карту я не могу. Видимо я чего-то не знаю о глобальных переменных. Долго искала решение в интернете. Помогите, пожалуйста решить проблему. Приложение тут: http://vk.com/app3603753_19131538?ref=9

Код: Выделить всё

 <!DOCTYPE html><html>   <head>    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />    <link rel="stylesheet" type="text/css" href="style.css"/>    <script src="http://vk.com/js/api/xd_connection.js?2" type="text/javascript"></script>        <script type="text/javascript"      src="http://maps.googleapis.com/maps/api/js?key=AIzaSyBduORj87wd3MpVBKJDFFGSWJgimiqta1Q&sensor=false">    </script>         </head>    <body onload="initialize()">    <script type="text/javascript">        VK.init(function() {                    // узнаём flashVars, переданные приложению GET запросом. Сохраняем их в переменную flashVars                    var parts=document.location.search.substr(1).split("&");                    var flashVars={}, curr;                    for (i=0; i<parts.length; i++) {                        curr = parts[i].split('=');                        // записываем в массив flashVars значения. Например: flashVars['viewer_id'] = 1;                        flashVars[curr[0]] = curr[1];                    }                              // получаем viewer_id из полученных переменных                var viewer_id = flashVars['viewer_id'];                VK.api("users.get", {uids:viewer_id,fields:"city, country"}, function(data) {                       var city = data.response[0].city;                    VK.api("places.getCityById", {cids:city}, function(data) {                        city_name = data.response[0].name;                        document.getElementById('FON').innerHTML = city_name;                    });                });                 })        function initialize() {            var geocoder = new google.maps.Geocoder();            var mapOptions = {              center: new google.maps.LatLng(55.7522, 37.6156),              zoom: 8,              mapTypeId: google.maps.MapTypeId.ROADMAP            };            var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);            function showCity(address)            {                geocoder.geocode({'address':address}, function(results, status)                {                    if( status == google.maps.GeocoderStatus.OK ) {                        map.setCenter(results[0].geometry.location);                    }                });            }            showCity(city_name);        }  </script>      <div id="map_canvas"></div>    <div id="FON"></div>   </body>  </html> 

Re: Передача данных между функциями.

Добавлено: 27 апр 2013, 01:53
alexei

Код: Выделить всё

 var global_var=0;function F1(){global_var=5;}function F2(){alert(global_var); //5} function F1();function F2(); 

Re: Передача данных между функциями.

Добавлено: 27 апр 2013, 12:28
Padme
Спасибо. Вроде сработало.

Re: Передача данных между функциями.

Добавлено: 27 апр 2013, 14:28
Padme
Нет, не сработало. Он выдает 0, число присвоенное вначале. Значение присваемое в places.getCityById вытащить нельзя за пределы! Почему так?
Получается у меня вопрос такой, как мне данные возвращаемые функцией VK.api перетащить в глобальную переменную?

Код: Выделить всё

VK.api("places.getCityById", {cids:city}, function(data) {                        city_name = data.response[0].name;                        document.getElementById('FON').innerHTML = city_name;                    });

Re: Передача данных между функциями.

Добавлено: 27 апр 2013, 18:47
Padme
Все исправила. Работает. Еще раз спасибо.