Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите считать значение переменной за пределами функции (https://javascript.ru/forum/misc/67451-pomogite-schitat-znachenie-peremennojj-za-predelami-funkcii.html)

mxup 18.02.2017 09:51

Помогите считать значение переменной за пределами функции
 
Здравствуйте, большая просьба помочь понять как передать значение переменных la и lo из функции в массив co
Дело в том, что переменные clLa и clLo в массиве co оказываются пустыми при проверке обработчиком obrabotchik.php
Ниже скрипт:

$(function () {

    var la = '';
    var lo = '';

  	if(navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function (position) {
        var la = position.coords.latitude;
        var lo = position.coords.longitude;
	
	    });
    }
	
    var client = new BibliotekaJS();
    var co = {        
        // .......
        uuuurAgent: client.getUserAgent(),

        clLa: la,
        clLo: lo,
	         };
 
 $.post('obrabotchik.php', co);

});

destus 18.02.2017 10:51

mxup,
строка 8-9 убери var

mxup 18.02.2017 11:05

Цитата:

Сообщение от destus (Сообщение 444608)
mxup,
строка 8-9 убери var

Пробовал, но ,к сожалению, не прокатывает(

Если алертом, ну например в 10 строке вызывать значение, то окошко с этими значениями появляется, то есть переменным значение присваивается.

Про JavaScript читал, про глобальные и локальные переменные. Но в моём примере почему то не прокатывает это всё.
Я вот думаю может из-за Jquery надо как то по другому немного делать?

Malleys 18.02.2017 11:54

Функция, которая передается в navigator.geolocation.getCurrentPosition вызывается не мгновенно, а спустя некоторое время (т. е. тогда, когда GPS координаты будут определены). Вы сами правильно написали, что в 10 строчке координаты доступны, потому что функция вызвана после того, как координаты определились.

То , что у вас с 15 по 23 строку, надо вставить в 10 стоку, ведь именно там соответствующие данные уже есть.

mxup 18.02.2017 11:59

Цитата:

Сообщение от Malleys (Сообщение 444612)
Функция, которая передается в navigator.geolocation.getCurrentPosition вызывается не мгновенно, а спустя некоторое время

Ну да, что то я об этом и не подумал) Я думал функции выполняются поочерёдно, то есть следующая функция будет ждать, пока первая не выполнится.


Часовой пояс GMT +3, время: 13:57.