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

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Как правильно прописать полученные значения от метода ВК?

Сообщение Alazaur »

Casperovskii писал(а):Попытка холивара засчитана! But you shall not pass!
Под*еб тоже :D :D :D
На счет ника он левый) Я прост когда на форуме регистрировался не думал, что на долго задержусь.
Dimaz
Сообщения: 76
Зарегистрирован: 15 ноя 2012, 18:37

Re: Как правильно прописать полученные значения от метода ВК?

Сообщение Dimaz »

Кстати, вот еще один вопрос. Как быстрее будет ссылаться на глобальный массив? Если создать ссылку на него в функции:

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

var Data2 = [];function select_h_friend() {data2 = Data2;     //ссылка на глобальный массив Data2var img = $('#h_friend').val();if(img == '#') {$('#no').html('<img src="http://vk.com/images/dquestion_d.gif"></img>');}else {$('#no').html('<img src="' + data2[img].url + '"</img>');$('form p').css("display","block");}}
Или же если сразу обращаться к нему по имени, без ссылки на него в функции:

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

var Data2 = [];function select_h_friend() {var img = $('#h_friend').val();if(img == '#') {$('#no').html('<img src="http://vk.com/images/dquestion_d.gif"></img>');}else {$('#no').html('<img src="' + Data2[img].url + '"</img>');  //сразу обращается к массиву по его имени$('form p').css("display","block");}}
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Как правильно прописать полученные значения от метода ВК?

Сообщение Alazaur »

Dimaz, без разницы. Имя массива такая же ссылка.
Dimaz
Сообщения: 76
Зарегистрирован: 15 ноя 2012, 18:37

Re: Как правильно прописать полученные значения от метода ВК?

Сообщение Dimaz »

И снова вопрос. :D У меня теперь имеется глобальная переменная Data, хранящая данные в JSON формате. Если быть точнее, в ней хранится json-массив. И данные из нее достаются точно также как и из обычного массива. Мне нужно сформировать get-запрос для отправки на сервер. Но, чтобы его сформировать, мне нужно доставать данные как из Data так и из Data2. Что можно придумать?

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

var Data; var Data2 = [];function select_h_friend() {var img = $('#h_friend').val();if(img == '#') {$('#no').html('<img src="http://vk.com/images/dquestion_d.gif"></img>');}else {$('#no').html('<img src="' + Data2[img].url + '"</img>');  //переменная img локальная$('form p').css("display","block");}}
Запрос формирует другой скрипт. Я не могу прописать так:

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

var str = $("input:radio[class=server]").serialize();str += "&answer_id="+Data[0].id;str += "uid="+Data2[img].url
Переменная img локальная, поэтому работать из другого скрипта не будет. Сделать ее тоже глобальной? Или есть еще какие-нибудь варианты?
Casperovskii
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50

Re: Как правильно прописать полученные значения от метода ВК?

Сообщение Casperovskii »

Dimaz
Либо оглобалить все переменные, либо свести функции в один скрипт. А за готовыми решениями ты не туда пришел. К тому же в студию хотелось бы оба скрипта, которые у тебя уже есть.
Dimaz
Сообщения: 76
Зарегистрирован: 15 ноя 2012, 18:37

Re: Как правильно прописать полученные значения от метода ВК?

Сообщение Dimaz »

Casperovskii
А толку если в один скрипт функции запихать. Она все равно будет не доступна, так как она локальная. Глобальной она от этого не станет. :D
Просто данные в Data идут с моего сервера, а в Data2 записываются методом users.get.
Dimaz
Сообщения: 76
Зарегистрирован: 15 ноя 2012, 18:37

Re: Как правильно прописать полученные значения от метода ВК?

Сообщение Dimaz »

У меня тестовое приложение. Просто обычный опрос пользователей. Публиковать его естественно не буду. Пишу его ради того, чтобы понять VK.api и изучить JQuery. Вот код самого приложения:

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

var Data; var i = 0; var y = 0;function button(x) {if(x==1) {   //если нажата кнопка Далее, проверяем создан ли опрос. Если создан, просто скрываем текущий и показываем следующийif(i!=y) {    //если опрос уже создан$('#here' + i).css("display", "none");i++;$('#here' + i).css("display", "block");}else {   //если опрос еще не создан на странице$('#here' + i).css("display", "none");i++; y++;go();$('#back').css("display", "inline-block");}}else if(x==2){   //Если нажата кнопка Назад, скрываем текущий опрос и показываем предыдущийif(i>0) {   //Значит мы еще не дошли до первого опроса и продолжаем показывать предыдущий$('#here'+ i +',#send').css("display", "none");i--;$('#here' + i).css("display", "block");}else {   //Мы дошли до первого опроса. Предыдущих больше нет, возвращаем ложьreturn false;}}console.log("i="+i,"y="+y);} function sending() {var str = $("input:radio[class=server]").serialize();str += "&test_id="+Data[0].id;alert(str);$.get('save_data.php?'+str,function(data2){if(data2) {alert(data2);}});} function go() {   //создаем новый опросdata = Data;if(i > data.length - 1) {   Если дошли до последнего опроса, возвращаем ложь и показываем кнопку Отправить$('#send').css("display", "inline-block");y--;return false;}var row = '';row = '<span class="test" id="here'+i+'">';row += '<b>' + data[i].questions + '</b><Br>';var ss = data[i].answers.split(',');for (var i2 = 0; i2<ss.length; i2++) {row += '<input type="radio" class="server" name="id_answer'+i+'" value="' + i2 + '">' + ss[i2] + '<Br>';}row += '</span>'$('#feeds').prepend(row);} $(document).ready(function(){$('form input:image').click(function() {var drink = $('input[name=drink]:checked').val();if(!drink) {alert("Выберите тему опроса"); return false;}$.post('load_data.php', {drink: drink},function(data){Data = data;if(data) {var fieldsCount = data.length;var row = '';if(fieldsCount) {     //создаем кнопки для переключения опросовrow = '<form><button onclick="button(1); return false;">Далее</button>';row += '<button id="back" style="display: none" onclick="button(2); return false;">Назад</button>';row += '<button id="send" style="display: none" onclick="sending(); return false;">Отправить</button></form>';$('#feeds').html(row);go();}}  }, "json"); return false;});});
Dimaz
Сообщения: 76
Зарегистрирован: 15 ноя 2012, 18:37

Re: Как правильно прописать полученные значения от метода ВК?

Сообщение Dimaz »

Можно как-то без глобальных переменных обойтись в моем случае?
Casperovskii
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50

Re: Как правильно прописать полученные значения от метода ВК?

Сообщение Casperovskii »

Я хз, с JS не работал. Так что я не пойму, чем так пугают глобальные переменные? У тебя же не так много вычислений и нагрузка минимальна. Значит и оптимизировать не надо.
Ответить