Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Wyświetlanie dwóch liczników na raz
Forum PHP.pl > Forum > Przedszkole
klapaucius
Mam taką funkcję do odliczania czasu czasu (jako parametr podajemy uniksowy czas, do którego nasza funkcja ma odliczać czas):
  1. function licznik($do_kiedy){
  2. return "
  3. <script type='text/javascript'>
  4.  
  5. function CD(d,o,t,x){return[x=~~(t=(d-o)/864e5),x=~~(t=(t-x)*24), x=~~(t=(t-x)*60),~~((t-x)*60)]}
  6. function R(t){
  7. t=CD(new Date(".($do_kiedy*1000)."),new Date());
  8. document.getElementById('licznik').innerHTML=''+t[2]+'m, '+t[3]+'s';
  9. if(!t[0]&&!t[1]&&!t[2]&&!t[3])document.location='google.pl';
  10. else setTimeout('R()',1e3);
  11. }
  12. onload=function(){R();}
  13.  
  14.  
  15. </script>
  16. <div id='licznik'></div>";
  17. }

No i funkcja działa elegancko, jednak co zrobić, jeśli na raz chcę wyświetlić kilka takich liczników? Teraz, gdy wywołam na raz kilka razy tę funkcję to wyświetla się tylko 1 odliczanie...
Domyślam się, że jest to zależne od tego, że wyświetla się do za pomocą div'u o ID = 'licznik'.. A jak wiemy ID może występować tylko raz... W takim razie można zrobić z tego CLASS zamiast DIV? Jeśli tak to jak?
Niktoś
Kilka takich liczników dla jednego użytkownika?Po jakiego grzyba??Nie wiem,chcesz jakieś strefy czasowe?Powiedz coś więcej?
Czy to ma być ten sam czas tylko skopiowany,nie rozumiem za bardzo.

PS.Jak chcesz dublować divy to nie mozesz posługivać się id,musisz nadać klasę i do diva odwoływać się po klasie.
Skopiować diva możesz tak:
http://stackoverflow.com/questions/2161923...ered-in-the-div
a tam jest przykład jak to działa:
http://jsbin.com/isowo
CuteOne
Liczników, może być i 1000 ważne aby samo liczenie czasu odbywało się tylko raz

[JAVASCRIPT] pobierz, plaintext
  1. function licz(obj) { }
  2.  
  3. var e = [['div1',11],['div2',11],['div3',1000]];
  4. function dublujLiczenie() {
  5.  
  6. for(i=1; i<=e.length; i++) {
  7.  
  8. licz(e[i]);
  9. }
  10. setTimeout('dublujLiczenie()', 100);
  11. }
[JAVASCRIPT] pobierz, plaintext


coś w ten deseń
klapaucius
Cytat(Niktoś @ 13.12.2011, 01:18:40 ) *
Kilka takich liczników dla jednego użytkownika?Po jakiego grzyba??Nie wiem,chcesz jakieś strefy czasowe?Powiedz coś więcej?
Czy to ma być ten sam czas tylko skopiowany,nie rozumiem za bardzo.


Chodzi mi o to, że na jednej stronie kilka razy chcę wywołać funkcję licz(), za każdym razem z innym parametrem. Przykładowo chcę aby jeden licznik odliczał mi czas do wydarzenia za tydzien, poniżej drugi licznik odliczał mi wydarzenie za 2 tygodnie, kolejny za 3 i analogicznie tak dalej... I chcę aby te wszystkie liczniki działały na raz.. w tym samym czasie i na jednej stronie...
-biocian-
Reasumując i łącząc powyższe posty zrobiłem to tak:

CODE
<script type='text/javascript'>
function CD(d,o,t,x){return[x=~~(t=(d-o)/864e5),x=~~(t=(t-x)*24), x=~~(t=(t-x)*60),~~((t-x)*60)]}

function licz(obj) {
t=CD(new Date(obj[1]),new Date());
document.getElementById(obj[0]).innerHTML=' ' +t[0]+" dni, "+t[1]+" godz, "+t[2]+" min, "+t[3]+"s";
}

var e = [['div1','2011,12,31,16:00:00'],['div2','2012,12,31,10:00:00'],['div3','2012,01,01,15:38:00']];
function dublujLiczenie() {

for(i=0; i<e.length; i++) {

licz(e[i]);
}
setTimeout('dublujLiczenie()', 100);
}

</script>

<body onload='dublujLiczenie()'>
<div id='div1' style='border:1px solid red;'></div><br />
<div id='div2' style='border:1px solid red;'></div><br />
<div id='div3' style='border:1px solid red;'></div><br />
</body>


A reszta to już rola php (podanie do JS dat, czy nazw divów).
W sumie to forum PHP a wątek obrazuje głównie JS tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.