Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][JS] test na czas, potrzebna pomoc
escobar1983
post 12.02.2009, 14:07:47
Post #1





Grupa: Zarejestrowani
Postów: 198
Pomógł: 0
Dołączył: 31.01.2008

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


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
Go to the top of the page
+Quote Post
sebekzosw
post 13.02.2009, 11:38:47
Post #2





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

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


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>
Go to the top of the page
+Quote Post
escobar1983
post 13.02.2009, 16:00:46
Post #3





Grupa: Zarejestrowani
Postów: 198
Pomógł: 0
Dołączył: 31.01.2008

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


Ok a jak skonczy ktos przed czasem jak przekazac czas do nastepnej strony, czyli czas ktory zajal ci na rozwiazanie testu?
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: 29.06.2025 - 02:51