Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Odliczanie czasu do kazdego rekordu
jacobson
post 16.04.2011, 16:51:28
Post #1





Grupa: Zarejestrowani
Postów: 468
Pomógł: 36
Dołączył: 14.12.2010

Ostrzeżenie: (0%)
-----


Witam, mam pytanie... chce do swojej strony dorobic cos takiego ze rekordy pobrane z bazy danych wyswietlane sa jeden pod drugim tak jak np najblizsze imprezy sportowe.

i Teraz znalazlem skrypt JS odliczania czasu

  1. function czasDoWydarzenia(rok, miesiac, dzien, godzina, minuta, sekunda, milisekunda)
  2. {
  3. var aktualnyCzas = new Date();
  4. var dataWydarzenia = new Date(rok, miesiac, dzien, godzina, minuta, sekunda, milisekunda);
  5. var pozostalyCzas = dataWydarzenia.getTime() - aktualnyCzas.getTime();
  6.  
  7. if (pozostalyCzas > 0)
  8. {
  9. var s = pozostalyCzas / 1000; // sekundy
  10. var min = s / 60; // minuty
  11. var h = min / 60; // godziny
  12.  
  13. var sLeft = Math.floor(s % 60); // pozostało sekund
  14. var minLeft = Math.floor(min % 60); // pozostało minut
  15. var hLeft = Math.floor(h % 60); // pozostało godzin
  16.  
  17. if (minLeft < 10)
  18. minLeft = "0" + minLeft;
  19. if (sLeft < 10)
  20. sLeft = "0" + sLeft;
  21.  
  22. return hLeft + " : " + minLeft + " : " + sLeft;
  23. }
  24. else
  25. return;
  26. }
  27.  
  28. window.onload = function()
  29. {
  30. idElement = "content_main_countdown";
  31. document.getElementById(idElement).innerHTML = czasDoWydarzenia(2011, 04, 16, 20, 0, 0, 0);
  32. setInterval("document.getElementById(idElement).innerHTML = czasDoWydarzenia(2011, 04, 16, 20, 0, 0, 0)", 1000);
  33. };


i teraz w moim pliku index.php w <head> dalem <script type="text/javascript" src="/lib/countdown.js" />

no i tam gdzie mam rekordy:

  1. $q = "SELECT * FROM " . TBL_1 . " LIMIT 0,10";
  2. $result = $database->query($q);
  3. $num_rows = mysql_numrows($result);
  4. for ($i = 0; $i < $num_rows; $i++) {
  5. $id = mysql_result($result, $i, "quizid");
  6. echo "<div id=\"content_main_entry\">
  7. <span class=\"content_main_entry_value\">" . $id . "</span>
  8. <div id=\"content_main_countdown\">Tutaj czas</div></a></div>
  9. <div id=\"content_main_entry_enroll\"><a href=\"##\">Zapis</a></div>";
  10. }



Wszystko dziala, rekordy z bazy danych sa wypisywane odpowiednio jeden pod drugim, jednak czas ktory powinien odliczac sie dla kazdego elementu odlicza sie tylko dla pierwszego.

Moze ja cos robie niepoprawnie i ktos by mnie nakierowal co i jak powinienem zrobic zeby to dzialalo poprawnie smile.gif
pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
krowal
post 16.04.2011, 19:44:39
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

Ostrzeżenie: (0%)
-----


W dokumencie nie może być więcej niż jeden elementów o tym samym id. Twój skrypt po prostu znajduje pierwszy taki element o id content_main_countdown i dalej nawet nie próbuje szukać. powinieneś sobie zrobić coś w tym stylu:
[JAVASCRIPT] pobierz, plaintext
  1. for (var i=0; i<ilosc_elementow; i++){
  2. document.getElementById('content_main_countdown_'+i).innerHTML = czasDoWydarzenia(2011, 04, 16, 20, 0, 0, 0);
  3. setInterval(function(){
  4. document.getElementById('content_main_countdown_'+i).innerHTML = czasDoWydarzenia(2011, 04, 16, 20, 0, 0, 0)
  5. },1000);
  6. }
[JAVASCRIPT] pobierz, plaintext


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:30