powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Глобальная переменная в запросе ajax+json!вне запроса!
25 сообщений из 33, страница 1 из 2
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323018
glob_js
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Не могу вынести переменную за запрос! вот запрос

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 
var getlat;
var getlng;
var getzoom;

$.ajax({
        type: 'POST',
        cache: false,
        url: 'getdata.php',
        dataType: 'json',
		data: 'glob=1',
		traditional: true,
        success: function(data1) {
          getlat = data1.lat;
		  getlng = data1.lng;
		  getzoom = data1.zoom;
        }
    }); 



хочу вставить результаты

Код: javascript
1.
2.
3.
4.
5.
6.
var centerCoord = new google.maps.LatLng( getlat, getlng); 
    var mapOptions = {
        zoom:  getzoom,
        center: centerCoord,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };




ничего не получается когда вызываю переменную в SUCCESS то работает а вот после закрытия }
});
если прописать alert(getlat); не работает! как можно сделать переменную глобальной?
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323050
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, все нормально, ты что-то путаешь, переменные явно не приватные. Возможно, если покажешь больше кода для представления о видимости переменных, что-то поменяется. Но поэтому коду все пучком.
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323060
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruck,

Нет, думаю не пучком )). Автор хочет использовать переменную не после вызова success, а именно физически прописать использование переменной после кода функции.

Автору:
Есть 3 варианта обращения к принятой переменной:
1. Внутри функции success, тогда вы получаете гарантию, что код будет отработан после получения переменной
2. Сделать синхронный запрос вместо асинхронного.
3. Дождаться получения переменной (спомощью таймера например. Но смысла в этом нету, лучше тогда success)
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323084
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-то из нас слепой ... Переменные объявлены глобально (и имеют значения undеfined). После запроса в обработчике success переопределяет их. В чем проблема их использования? Допускаю, что они не глобальные, а определены внутри функции. Допускаю, что не вызывается success, а, скажем, error, тогда они не переопределяются. Допускаю, что происходит сбой и не доходит до их переопределения. Поэтому рекомендую опубликовать код со структурой, чтобы можно было разобраться. Представленного кода явно мало.
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323104
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckКто-то из нас слепой ... Переменные объявлены глобально (и имеют значения undеfined). После запроса в обработчике success переопределяет их. В чем проблема их использования? Допускаю, что они не глобальные, а определены внутри функции. Допускаю, что не вызывается success, а, скажем, error, тогда они не переопределяются. Допускаю, что происходит сбой и не доходит до их переопределения. Поэтому рекомендую опубликовать код со структурой, чтобы можно было разобраться. Представленного кода явно мало.

Вы меня наверное неверно поняли... Что я хотел сказать, так это то, что автор нарушает последовательность действий (других причин не вижу). То есть при выполнении скрипта происходит что-то подобное:
1. Определить обработчик ответа сервера (success)
2. Отправить запрос
3. Попробовать использовать переменную, которая переопределяется в обработчике ответа (и получить undefined например)
4. Получить ответ сервера и вызвать обработчик переопределяющий переменные.

То есть автор вынося использование переменных за обработчик меняет последовательность действий на неправильный.

Хотя согласен, лучше если автор предоставит весь код касающийся данной ситуации, так как сейчас он получает только самые вероятные догадки. А с кодом можно получить чёткий ответ.
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323114
glob_js
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, спасибо за обсуждение! Вот собственно код!



index.php

Код: html
1.
<div id='map' style="height:577px;border:1px solid #ccc;margin-top:0px;"></div>





fom.js
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
var map;
var image = 'min_marker.png';
var image2 = 'marker.png';
var gmarkers = [];


var getlat;
var getlng;
var getzoom;




var infowindow = new google.maps.InfoWindow();  
function mapInit(){
	


 $.ajax({
        type: 'POST',
        cache: false,
        url: 'getdata.php',
        dataType: 'json',
		data: 'glob=1',
		traditional: true,
        success: function(data1) {
          getlat = data1.lat;
		  getlng = data1.lng;
		  getzoom = data1.zoom;
// прописываю тут alert(getlat); получаю данные которые я хотел!
        }
    }); 

// прописываю тут alert(getlat); то получаю undefined!

// надо чтобы данный попадали вот сюда в установки гугл мапа!
	
    var centerCoord = new google.maps.LatLng(getlat, getlng); 
    var mapOptions = {
        zoom:  getzoom,
        center: centerCoord,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map"), mapOptions);
	



}






$(document).ready(function(){
    mapInit();
});




getdata.php

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<?
include 'inc/connect.php';
if(isset($_POST['glob'])){
$return_arr = array();
$sql = "SELECT * FROM `settings`";	
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$return_arr = array("lat" => $row["lat"], "lng" => $row["lng"], "zoom" => $row["zoom"],);  
echo json_encode($return_arr);  
}

?>
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323120
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glob_js,

всё понятно... перечитайте мои ответы... они верны :)... Думаю более подробное объяснение не потребуется.
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323121
glob_js
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Програмёрglob_js,

всё понятно... перечитайте мои ответы... они верны :)... Думаю более подробное объяснение не потребуется.


Извините но я многое перепробывал вообще не могу врубиться! в sucess же я получаю переменную которую я хочу! и заношу её в глобальную! а вы нести за рамки не могу! я даже уже не знаю что и как переделать! вся последовательность действий правильная как видите получаю дынные! заношу данные! но за пределы просто не хочет выносить! Напишите пожалуйста пример как можно это сделать! Да понимаю нагло вас об этом просить но просто время поджимает ! а я уже не знаю что тут ещё можно вправить! весь код вы видите сами!
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323123
glob_js
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
меня всё равно интерисует тот вариант но вот решил сделать так!


$.ajax({
type: 'POST',
cache: false,
url: 'getdata.php',
dataType: 'json',
data: 'glob=1',
traditional: true,
success: function(data1) {
getlat = data1.lat;
getlng = data1.lng;
getzoom = data1.zoom;

var centerCoord = new google.maps.LatLng(getlat, getlng);
var mapOptions = {
zoom: 7,
center: centerCoord,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map"), mapOptions);


}
});



попали коориднаты и заработало но проблема возникла теперь с zoom: 7, когда пытаюсь вписать zoom: getzoom, то скрипт не срабатывает! карта не появляется! там нудно как то специфически вызвать эту переменную или как?
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323124
glob_js
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СНОВА ИЗВИНЯЮСЬ ПОСЛЕДНЕЕ СООБЩЕНИЕ НЕ НУЖНОЕ ДРУГИЕ ФУНКЦИИ ПОТОМ ИЗ ЗА ТАКОВО ВИДА ПРОПИСИ ДАННЫХ НЕ СРАБОТАЛИ! ВЕРНУЛСЯ К ТОМУ ЖЕ КОДУ!
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323125
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр правильно написал, ну, почти что.
Сюксес у Вас вызывается асинхронно, поэтому присваивание в нём глобальной переменной - не прокатит. Программа-то выполняется синхронно - степ бай степ. Поэтому обрабатывайте её значение внутри сюксеса, или оттулова вызывайте свою функцию обработки результата запроса. Судя по коду, присваивание происходит, когда результатом аякс-запроса и не пахнет.
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323126
мимо ходом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у вас ajax асинхронный . дефолт == true
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323127
glob_js
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
только хотел отписать!
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 $.ajax({
        type: 'POST',
        cache: false,
        url: 'getdata.php',
        dataType: 'json',
		data: 'glob=1',
		traditional: true,
        success: function(data1) {
          getlat = data1.lat;
		  getlng = data1.lng;
		  getzoom = data1.zoom; 
        },
		async: false
    });



добавил строку async: false заработало! НО!!! конечно же без подлянки не бывает хочу внести данные
в zoom: getzoom , но ничего программа стоит! просто вызываю алертом! всё показывает значени! но когда хочу занести вот сюда

Код: javascript
1.
2.
3.
4.
5.
var mapOptions = {
        zoom: getzoom,
        center: centerCoord,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };



то ничего не получается ! может проблема в том что в var mapOptions внутри ещё появляется пердопределённый var getzoom? не хочет принимать переменную !
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323128
glob_js
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
P.S. проверил одну штуку

если прописать просто вот так от руки



Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
var gett = 7;
	
    var centerCoord = new google.maps.LatLng(getlat, getlng); 
    var mapOptions = {
        zoom: gett,
        center: centerCoord,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };



то работает! нужно ли тогда как то обработать чтоли getzoom???? а то эту переменную берёт а вот getzoom не хочут! хотя значение там такое же - 7!
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323130
мимо ходом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторно просто время поджимает
авторэту переменную берёт а вот getzoom не хочут
смени имя и не парься )
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323132
мимо ходом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
зы: предыдущий пост в том случае если так не работает
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
var getzoom = 7;
	
    var centerCoord = new google.maps.LatLng(getlat, getlng); 
    var mapOptions = {
        zoom: getzoom,
        center: centerCoord,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323133
glob_js
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мимо ходомавторно просто время поджимает
авторэту переменную берёт а вот getzoom не хочет
смени имя и не парься )


Вы про что? ну если про имя переменной то менял даже вот так сделал как то тупо


var gett = getzoom;

и

Код: javascript
1.
2.
3.
4.
5.
 var mapOptions = {
        zoom: gett,
        center: centerCoord,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };



и никакого эффекта!
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323134
glob_js
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мимо ходомзы: предыдущий пост в том случае если так не работает
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
var getzoom = 7;
	
    var centerCoord = new google.maps.LatLng(getlat, getlng); 
    var mapOptions = {
        zoom: getzoom,
        center: centerCoord,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };




Так как вы написали это ручной ввод! А мне нужно чтобы через переменную! т.к. значение zoom меняется с админ панеля оно не всегда 7 будет :)
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323135
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeПрограмёр правильно написал, ну, почти что.
Сюксес у Вас вызывается асинхронно, поэтому присваивание в нём глобальной переменной - не прокатит. Программа-то выполняется синхронно - степ бай степ. Поэтому обрабатывайте её значение внутри сюксеса, или оттулова вызывайте свою функцию обработки результата запроса. Судя по коду, присваивание происходит, когда результатом аякс-запроса и не пахнет.

а почему почти?
по-моему Вы сейчас повторили то же, что и я, только сформулировали иначе
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323136
glob_js
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПрограмёрShSergeПрограмёр правильно написал, ну, почти что.
Сюксес у Вас вызывается асинхронно, поэтому присваивание в нём глобальной переменной - не прокатит. Программа-то выполняется синхронно - степ бай степ. Поэтому обрабатывайте её значение внутри сюксеса, или оттулова вызывайте свою функцию обработки результата запроса. Судя по коду, присваивание происходит, когда результатом аякс-запроса и не пахнет.

а почему почти?
по-моему Вы сейчас повторили то же, что и я, только сформулировали иначе


Ну да) Вот только помоги докопаться до проблемы с переменной getzoom почему она не хочет срабатывать в том месте! а объявляя другую переменную и вручную вводить значение то эту переменную берёт!) как то отформатировать надо её или что?
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323137
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glob_js,

А что, если попробовать написать alert(getzoom); внутри success и за его пределами?

1. Значения одинаковые undefined - Вы не получили значение с сервера (смотреть есть ли этот атрибут в принимаемом объекте.
2. Значения разные (в success то что надо, за пределами undefined) - очень мало вероятно... Если так - надо видеть больше кода :)
3. Значения одинаковые не undefined - Вы явно где-то опечатались (если вы показали цельный участок кода и ничего не вырезали из середины).
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323138
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glob_js...вручную вводить значение то эту переменную берёт!)...
Дык, ясен перец. Кстати, если Вы бы поставили в своём первоначальном коде не один алерт, а два - на втором арерте у Вас тоже бы всё сработало.
Вопрос: почему?
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323139
glob_js
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и внутри и вне запроса alert(getzoom); выводит значение! прямо даже если перед

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
alert(getzoom);
	
    var centerCoord = new google.maps.LatLng(getlat, getlng); 
    var mapOptions = {
        zoom: getzoom,
        center: centerCoord,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };



вот выскакивает окошко со значением! а вот внизу когда значение хочу установить уже!!!! то всё ничего не срабатывает! zoom: getzoom, видимо не получает значение а алерт показывает что оно есть! странное какое то дело!

и да ShSerge интересен ответ на вопрос твой)))) ПОчему?!)
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323141
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glob_jsи внутри и вне запроса alert(getzoom); выводит значение! прямо даже если перед

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
alert(getzoom);
	
    var centerCoord = new google.maps.LatLng(getlat, getlng); 
    var mapOptions = {
        zoom: getzoom,
        center: centerCoord,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };



вот выскакивает окошко со значением! а вот внизу когда значение хочу установить уже!!!! то всё ничего не срабатывает! zoom: getzoom, видимо не получает значение а алерт показывает что оно есть! странное какое то дело!

и да ShSerge интересен ответ на вопрос твой)))) ПОчему?!)

Ответ на вопрос "почему?" очевиден... пока бы Вы сообразили что alert выскочил, пока бы навели мышку что бы его закрыть, пока бы клацнули и тд.... сервер бы уже давно ответил на запрос, браузер бы его принял и только ждал бы продолжения выполнения кода :).

Но вот как это связано со вторым вопросом (про getzoom) мне не понятно... если можно, ShSerge, поясните:)

glob_js, уверены, что значение, которое показывает alert допустимо для записи в mapOptions.zoom? Там точно число... и точно из допустимого диапазона?
...
Рейтинг: 0 / 0
Глобальная переменная в запросе ajax+json!вне запроса!
    #38323142
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glob_js...и да ShSerge интересен ответ на вопрос твой)))) ПОчему?!)
Подумайте.
...
Рейтинг: 0 / 0
25 сообщений из 33, страница 1 из 2
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Глобальная переменная в запросе ajax+json!вне запроса!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]