Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Туплю с $.get(); (https://javascript.ru/forum/jquery/18760-tuplyu-s-%24-get-%3B.html)

proctoleha 14.07.2011 12:16

Туплю с $.get();
 
Сабж:

1. На сервере есть переменные
Код:

$big = 100;
$medium = 50;
$small = 25;

Они в conf.php и могут меняться.
Мне их нужно передать в js и на нужной странице объявить как глобальные

2. Самый простой вариант: на нужной странице прописать:
<script type="text/javascript">
    var big = <?= $big ?>;
    var medium = <?= $medium ?>;
    var small = <?= $small ?>;
</script>

И все работает.

3. Тренируюсь с jquery и хотелось бы сделать поизящнее что-ли :)
при загрузке нужной страницы запросить сервер методом $.get, получить ответ в виде
Код:

{"big":100,"medium":50,"small":25}
, и забить полученные данные в глобальную переменную, чтобы можно было использовать ee в другой функции, т.е. эти действия должны выполниться один раз при загрузке страницы.

4. Если сделать так:
var v = $.get(path, {price : ''});
console.log(v);
, то в firebug'e получаем



Т.е. я получаю объект, и если по нему в firebug'e щелкнуть, то
Код:

readyState        4       
responseText        "{"big":100,"medium":50,"small":25}"       
status        200       
statusText            "success"

Т.е. одно из свойств полученного объекта responseText с нужной мне строкой.

Вопрос: как мне вытащить эти значения?

Если обратиться тупо:
Код:

v.responseText
то получаем undefind

Где я косячу и чего не понимаю?

ваый 14.07.2011 12:27

http://javascript.ru/forum/ajax/1871...tml#post113038

proctoleha 14.07.2011 13:34

Цитата:

Сообщение от ваый
ajax ответ в виде булева значения

При чем тут этот топик?

Мне нужна строка, а не ответ сервера в виде булева значения.

Задача то вроде формулируется просто:

Запросить методом аякс сервер, полученный ответ забить в глобальную переменную, чтобы можно было использовать ее в других функциях. ВСЕ! Делать мне ничего не надо, только один раз получить ответ и использовать его в дальнейшем.

walik 14.07.2011 13:53

$.get(path, {price : ''}, function(data) {
   v = data;
});

ваый 14.07.2011 13:56

Цитата:

Сообщение от proctoleha (Сообщение 113258)
При чем тут этот топик?
Мне нужна строка, а не ответ сервера в виде булева значения.

притом, что в этой теме ответ на твой вопрос, блин:-/

ваый 14.07.2011 13:56

хоть бы удосужился перейти по ссылке, если уж сам решить такую тривиальную задачу не в состоянии

proctoleha 14.07.2011 14:16

Цитата:

Сообщение от walik
v = data;

переменная v объявлена внутри метода $.get и если я извне обращусь к ней то

$.ajax({
        url : path,
        data : {price : ''},
        dataType: 'json',
        success: function(data){
        v = data;
        }
    });
    
    console.log(v);




Цитата:

Сообщение от ваый
хоть бы удосужился перейти по ссылке, если уж сам решить такую тривиальную задачу не в состоянии

Внимательно изучил и даже понял о чем речь - опять же там вызывается метод $.ajax и при получении успешного ответа производятся определенные действия с объектами внутри этой функции.

Мне же нужно нечто другое и очень простое. В том то и дело, что не вижу какой то ерунды - зациклился типа ;)

proctoleha 14.07.2011 14:31

Я могу конечно делать нужные мне действия внутри $.ajax'a, но это значить что каждый раз юзер щелкая мышкой будет вызывать этот метод, получать данные с сервера и использовать их.

Но вроде как это не кошерно - зачем 20 раз использовать (вызывать) функцию, если данные не меняются, и достаточно получить их один раз?

ваый 14.07.2011 14:44

ок, это я туплю, сорри
выше корректный ответ от walik

walik 14.07.2011 15:06

Цитата:

Сообщение от proctoleha
переменная v объявлена внутри метода $.get и если я извне обращусь

А что мешает использовать глобальные переменные ?
window['v'] = data;


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