Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JS] test na czas
Forum PHP.pl > Forum > PHP
escobar1983
Witam drodzy forumowicze. Hmm.. stoje przed wielkim problem. W sumie dwoma. Jestem w trakcie tworzenia testow sprawdzajacych wiedze. Prowadze szkolenie z przedmiotu.. no i tak na koniec che zrobic testy do kazdego szkolenia. Teraz zeby utudnic troche zycie ludzia, no to beda to testy na czas. Znalazlem kilka js z odliczaniem czasu. To kod tego timera.
Kod

<script type="text/javascript">
var ile=1200;

function stoper()
{
godzin=Math.floor(ile/3600);

minut =Math.floor(ile/60)%60;
sekund =ile%60;

document.getElementById('div1').innerHTML = 'Pozostalo: '+minut+' minut '+sekund+' sekund';
ile--;
if(ile<=-1)
{
clearInterval(intervalHandler);
}

}

var intervalHandler=setInterval(stoper,1000);


</script>

Teraz problem jest taki ze nie dochodzi on do zera i zatrzymuje sie na 1 sekundzie. Kolejnym moim probleme jest aby po zakonczeniu odliczania zablokowac test. Test jest tworzony na radio buttonach, no i na koniec jak juz sie skonczy czas. Chce je zablokowac i zliczyc punkty jakie sa na koniec po uplynietym czasie, na i oczywiscie wyswietlic. Kolejna sprawa jest ta ze jesli ktos ukonczy test przed czasem to chce zeby mi wyswietlalo sie wraz z wynikiem czas ktory potrzebowal ktos na rozwiazanie testu. Prosze tylko nie mowcie mi ze sie tego nie da smile.gif

Dodam ze wlasnie te informacje laduja w bazie danych. Na jej podstawie sa tworzone rankingi. I teraz jesli otwieram sesje z jakims uzytkownikiem to jak pozniej przekazac te dane do bazy w jednej sesji.
Problm kolejny i chyba ostatni. Co z odswiezaniem? Jak zrobic aby po odswiezaniu nic zerowal sie stoper i ilosc odpowiedz byla nadal taka sama? Z gory dziekuje. Pozdrawiam
sebekzosw
Zrobiłem coś takiego:

  1. <script type="text/javascript">
  2. var ile=1*6;
  3.  
  4. function stoper() {
  5. godzin = Math.floor(ile/3600);
  6. minut = Math.floor(ile/60)%60;
  7. sekund = ile%60;
  8.  
  9. document.getElementById('czas').innerHTML = 'Czas do końca testu: '+minut+' minut, '+sekund+' sekund';
  10.  
  11. ile--;
  12. //jeżeli minie czas wyświetla komunikat - w divie czas napisze czas minął, a przycisk o ID wyślij zostanie zablokowany
  13. if(ile < 0){
  14. clearInterval(intervalHandler);
  15. setInterval(stoper, 1000);
  16. document.getElementById('czas').innerHTML = 'Czas minął! Koniec testu!';
  17. document.getElementById('wyslij').disabled=true;
  18. }
  19. }
  20.  
  21. var intervalHandler = setInterval(stoper, 1000);
  22.  
  23.  
  24.  
  25.  
  26. <div id="czas"></div>
  27. <div id="test">
  28. <form action="" method="post">
  29. <p><input type="submit" id="wyslij" value="Dalej" /></p>
  30. </form>
  31. </div>
escobar1983
Ok a jak skonczy ktos przed czasem jak przekazac czas do nastepnej strony, czyli czas ktory zajal ci na rozwiazanie testu?
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.