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

Как узнать количество друзей в приложении (I-frame)

Добавлено: 10 апр 2011, 10:27
Влад
Собственно нужен код, который узнает сколько друзей (в цифрах) находится в приложении, у кого есть код поделитесь пожалуйста, отблагодарю.

Re: Как узнать количество друзей в приложении (I-frame)

Добавлено: 10 апр 2011, 22:32
Serge
Тоже бьюсь над этим >_<
В одной из тем Александр писал

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

responseFriends.uid.length()
, но у меня ничего не выходит. И менял, и крутил, но не вышло...
Массив друзей получил (проверял в Чарли), а вот взять его длину - никак не выходит.

Re: Как узнать количество друзей в приложении (I-frame)

Добавлено: 12 апр 2011, 22:30
Serge

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

VK.api('friends.getAppUsers',{},function(data){    fr = data.response.length;    alert(fr);});
Вот этот код в переменную fr записывает число друзей в приложении...
Но вот как сделать её глобальной - не понял... Может кто-то поможет? Пытался по типу:

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

 var fr;VK.api('friends.getAppUsers',{},function(data){    fr = data.response.length;});alert(fr);
но возвращает undefined. Как сделать правильно?

Re: Как узнать количество друзей в приложении (I-frame)

Добавлено: 13 апр 2011, 20:05
Александр
Serge

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

alert(fr);
во втором случае, сработает раньше чем выполнится функция VK.api.

Re: Как узнать количество друзей в приложении (I-frame)

Добавлено: 13 апр 2011, 21:01
Serge
Александр писал(а):Serge

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

alert(fr);
во втором случае, сработает раньше чем выполнится функция VK.api.
В принципе я догадывался, что вся проблема в этом.
Но как исправить - не понял всё равно. Пытался сделать

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

var fr;function dryzi(){VK.api('friends.getAppUsers',{},function(data){    fr = data.response.length;});alert(fr);};dryzi();
Но даже так не хочет срабатывать. Ничего не выводит.

Re: Как узнать количество друзей в приложении (I-frame)

Добавлено: 13 апр 2011, 21:40
Александр
Serge
Опять же ничего не изменил...
У тебя только начинает выполняться вызов метода friends.getAppUsers, а alert не дожидается её завершения.

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

VK.api('friends.getAppUsers',{},function(data){    // тут выполняется код после получения результата вызова сервера    alert('1');    fr = data.response.length;});// код не ждёт завершения!alert('2'); 
Проверь. Сначала выскочит сообщение "2", а потом "1". Явно не то что ты ожидаешь.

Вот так функция будет вызвана когда метод будет выполнен.

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

    var frCount = 0;    VK.api("getFriends", function(data) {         frCount = data.response.length;        alertFriendsCount();    });     function alertFriendsCount() {        alert(frCount);    }

Re: Как узнать количество друзей в приложении (I-frame)

Добавлено: 14 апр 2011, 16:41
Влад
Супер, просто супер!

Re: Как узнать количество друзей в приложении (I-frame)

Добавлено: 14 апр 2011, 19:22
Serge
Александр писал(а):Serge
Вот так функция будет вызвана когда метод будет выполнен.

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

    var frCount = 0;    VK.api("getFriends", function(data) {         frCount = data.response.length;        alertFriendsCount();    });     function alertFriendsCount() {        alert(frCount);    }
Спасибо, так и правда работает.
Но тут вот оказалась другая проблема - надо было передавать количество друзей php-скрипту, но делая по такому принципу скрипты на странице просто перестают выполнятся.
Решил проблему не очень хорошо - храню в базе айди пользователя и его количество друзей.

Re: Как узнать количество друзей в приложении (I-frame)

Добавлено: 14 апр 2011, 21:20
Влад

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

var frCount = 0;    VK.api("getAppFriends", function(data) {        frCount = data.response.length;        alertFriendsCount();    });      function alertFriendsCount() {        $('#friend').html(frCount);    }  if(frCount>10) alert("больше 10") else alert("меньше");
Я может заблуждаюсь, как сделать вывод если больше 10 друзей то выводить больше, если меньше - то меньше?

Re: Как узнать количество друзей в приложении (I-frame)

Добавлено: 15 апр 2011, 13:14
Александр
Влад
У тебя опять будет выполняться код не в той последовательности в которой ты подразумеваешь. Разберись с кодом который я писал. Что тебе в нем не понятно?

Поставил в твой код алерты, попробуй

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

var frCount = 0;    VK.api("getAppFriends", function(data) {        alert('1');        frCount = data.response.length;        alertFriendsCount();    });      function alertFriendsCount() {        alert('2');        $('#friend').html(frCount);    }         alert('3');  if(frCount>10) alert("больше 10") else alert("меньше");
Думаешь, что выведет по очереди 1, 2, 3? Попробуй.