Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 20.01.2013, 15:54
Интересующийся
Отправить личное сообщение для WaMpIr Посмотреть профиль Найти все сообщения от WaMpIr
 
Регистрация: 05.10.2010
Сообщений: 23

Вот хелпер, код онлайн статистики, который работает как раз с API и заточен именно под uCoz. Вот только не могу сообразить как сделать так, чтобы выводились все названия. Ссылка на XML, если не открывается, то использовать мможно кусок кода, который я дал выше.
document.write('<div id="useridonlines"></div><div id="usernumonline" ></div><div style="display:none;"><div id="useridonline"></div><div id="usergroupid"></div><div id="usergroupname"></div><div id="useravatar"></div><div id="username"></div></div>');
  var colichestvoonline='0';
  var xml=$.ajax({type:'GET',url:'/api/index/62',dataType:'xml',async:false}).responseText;
  var groupid=$(xml).find('struct:first member:contains("USER_ID") i4').contents().text(function(){$(this).text($(this).text()+', ')});
  var kolonline=groupid.length;$("#useridonline").append(groupid);
  function useridonline(a){$("#useridonline").html(groupid[a])}
  var i='0';
  function foruseronline(a){
  i=a;if(i<kolonline){
  useridonline(i);
  var b=$("#useridonline").html();
  var c=$.ajax({type:'GET',url:'/api/index/8-'+b,dataType:'xml',async:false}).responseText;
  $("#usergroupid").html($(c).find('struct:first member:contains("USER_GROUPID")').find('i4').text());
  $("#username").html($(c).find('struct:first member:contains("USER_USERNAME")').find('string').text());
  $("#useravatar").html($(c).find('struct:first member:contains("USER_AVATAR")').find('string').text());
  $("#usergroupname").html($(c).find('struct:first member:contains("USER_GROUPNAME")').find('string').text());
  var d=$("#usergroupid").html();
  var e=$("#username").html();
  var f=$("#useravatar").html();
  var g=$("#usergroupname").html();
  if(f==''){f='/online/avatar_01.png'}
  $("#useridonlines").prepend($("#template").html().replace(/#USERGROUPID#/g,d).replace(/#USERNAME#/g,e).replace(/#USERID#/g,b).replace(/#USERAVATARURL#/g,f).replace(/#USERGROUPNAME#/g,g));
  var i=i+1;
  if(i<kolonline){
  setTimeout('foruseronline('+i+')',1000);
  }else{
$("#usernumonline").html('Нет юзеров.');
if(kolonline=='1'){
  $("#usernumonline").html('Всего <b>'+kolonline+'</b> юзер онлайн.')
  }
  if(kolonline>'1'&&kolonline<'5'){
  $("#usernumonline").html('Всего <b>'+kolonline+'</b> юзера онлайн.')
  }
  if(kolonline>'4'){
  $("#usernumonline").html('Всего <b>'+kolonline+'</b> юзеров онлайн.')
  }
  }
  }
  }
  foruseronline(i);
Ответить с цитированием
  #12 (permalink)  
Старый 20.01.2013, 16:37
Интересующийся
Отправить личное сообщение для WaMpIr Посмотреть профиль Найти все сообщения от WaMpIr
 
Регистрация: 05.10.2010
Сообщений: 23

Вот что у меня получилось :
  document.write('<div id="useridonlines"></div><div id="usernumonline" ></div><div style="display:none;"><div id="usergroupname"></div></div>');
  var colichestvoonline='0';
  var xml=$.ajax({type:'GET',url:'/api/load/',dataType:'xml',async:false}).responseText;
  var groupid=$(xml).find('struct:first member:contains("ENTRY_URL")').contents().text(function(){$(this).text($(this).text()+', ')});
  var kolonline=groupid.length;$("#useridonline").append(groupid);
  function useridonline(a){$("#useridonline").html(groupid[a])}
  var i='0';
  function foruseronline(a){
  i=a;if(i<kolonline){
  useridonline(i);
  var b=$("#useridonline").html();
  var c=$.ajax({type:'GET',url:'/api/load/',dataType:'xml',async:false}).responseText;
  $("#usergroupid").html($(c).find('struct:first member:contains("i4")').find('string').text());
  $("#username").html($(c).find('struct:first member:contains("ENTRY_URL")').find('string').text());
  $("#useravatar").html($(c).find('struct:first member:contains("USER_AVATAR")').find('string').text());
  $("#usergroupname").html($(c).find('member:contains("TITLE")').find('string').text());
  var d=$("#usergroupid").html();
  var e=$("#username").html();
  var f=$("#useravatar").html();
  var g=$("#usergroupname").html();
  if(f==''){f='/online/avatar_01.png'}
  $("#useridonlines").prepend($("#template").html().replace(/#USERGROUPNAME#/g,g));
  var i=i+1;
  if(i<kolonline){
  setTimeout('foruseronline('+i+')',1000);
  }else{
$("#usernumonline").html('Нет юзеров.');
if(kolonline=='1'){
  $("#usernumonline").html('Всего <b>'+kolonline+'</b> юзер онлайн.')
  }
  if(kolonline>'1'&&kolonline<'5'){
  $("#usernumonline").html('Всего <b>'+kolonline+'</b> юзера онлайн.')
  }
  if(kolonline>'4'){
  $("#usernumonline").html('Всего <b>'+kolonline+'</b> юзеров онлайн.')
  }
  }
  }
  }
  foruseronline(i);

Но это какой-то бардак получается, строк с названиями вовсе две загружается, и названия идут одно за другим. Что делааааать????
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод данных из xml fAmOus Элементы интерфейса 3 31.07.2012 17:16
Вывод информации о свободном месте на жд на сайте Kmetik Events/DOM/Window 2 24.06.2012 12:32
Вывод информации о свободном месте Kmetik Элементы интерфейса 1 22.06.2012 17:11
Загрузка и обработка xml файла Visvitalis jQuery 0 26.09.2011 16:09
Некорректная обработка XML exec AJAX и COMET 1 04.05.2010 17:02