Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][MySQL][PHP]Odmierzanie czasu.
Forum PHP.pl > Forum > Przedszkole
mokater
Witam.
Czy moglibyście mi powiedzieć czy da się zrobić licznik czasu, który startuje po kliknięciu przycisku i kończy się po określonym czasie, z tym, że wysyła informacje które już zaznaczyliśmy na stronce.
Po krótce wyjaśnie do czego ma mi to służyć. Otóż napisałem skrypt do przeprowadzania testów. Użytkownik wybiera dany test, klika w przycisk "Rozpocznij test" i pokazuje mu się test. Narazie jest to test bez ograniczenia czasowego, jednak chciałbym zrobić tak, aby po kliknięciu "Rozpocznij test" włączył się licznik np 10 min. Jeśli użytkownik w ciągu tych 10 min odpowie powiedzmy na 10 z 15 pytań ( pytania mają forme: treść+4checkboxy) to te 10 pytań jest wysyłana i przetwarzana tak samo jak w przypadku naciśniecia przycisku "Zakończ test".

Czy możecie mi doradzić jakiś technologii użyć i być może są jakieś materiały w internecie dotyczące tego problemu lub naprowadzić mnie jakoś jak to wykonać

Pozdrawiam
memory
http://pl.wikibooks.org/wiki/PHP/Sesje
zamper
* Robisz link 'Rozpocznij test'
* Na stronie, w której wyświetlasz test w sesji zapisujesz czas rozpoczęcia
* Tworzysz licznik w javascripcie który odlicza 10min i po 10min np. zablokowywuje wszystkie checkboxy
* Po kliknięciu przycisku 'Wyślij test' porównujesz czas rozpoczęcia testu (z sesji) z czasem aktualnym
* Jeżeli czas jest większy niż 10min lub nie można odczytać czasu rozpoczęcia (user niecnie wyczyścił cookie w nadziej, że uda mu się oszustwo), to wiadomo
* A jeżeli nie, to sprawdzasz test
mokater
Hej, a jak zrobić aby zdezaktywować wszystkie checkboxy.
W skrypcie mam zawsze cztery checkboxy i wyglądają one tak:
  1. echo "<input type='checkbox' id=check1 name=poprawna[] value = '".$wiersz['odp1']."'>" . $wiersz['odp1'] . ' </br>';


W funkcji JS wyłączam poleceniem:
document.getElementById('check1').disabled=true;

Jednakże polecenie to działa tylko do 1 pytania, czyli wyłączają się 4 pierwsze checkboxy przypisane do 1 pytania a reszta nadal jest edytowalna.
Więc moje pytanie do Was: jak wyłączyć wszystkie checkboxy ?
zamper
http:/www.jquery.com
$('#div_w_ktorym_jest_test > input[type="checkbox"]').atrr('disabled', true);
mokater
Polecenie w funkcji JS:
$('#okno > input[type="checkbox"]').atrr('disabled', true);
Tak wygląda test:
  1. <div id="okno">
  2. <form action="wykonajTest.php" name="wynikTest" id="wynikTest" method="post">
  3. <?php
  4. while ($wiersz = mysql_fetch_assoc($wynik)) {
  5. ?>
  6. <table class=hor-zebra>
  7. <thead>
  8. <tr>
  9. <th scope=col>
  10. <?php echo $wiersz['tresc']; ?>
  11. </th>
  12. </tr>
  13. </thead>
  14.  
  15. <tbody>
  16. <tr class=odd>
  17. <td>
  18. <input type='checkbox' id=check1 name=poprawna[] value = <?php $wiersz['odp1'] ?>> <?php $wiersz['odp1'] ?><br/>
  19. </td>
  20. </tr>
  21.  
  22. <tr>
  23. <td>
  24. <input type='checkbox' id=check2 name=poprawna[] value = <?php $wiersz['odp2'] ?>> <?php $wiersz['odp2'] ?><br/>
  25. </td>
  26. </tr>
  27.  
  28. <tr class=odd>
  29. <td>
  30. <input type='checkbox' id=check3 name=poprawna[] value = <?php $wiersz['odp3'] ?>> <?php $wiersz['odp3'] ?><br/>
  31. </td>
  32. </tr>
  33.  
  34. <tr>
  35. <td>
  36. <input type='checkbox' id=check4 name=poprawna[] value = <?php $wiersz['odp4'] ?>> <?php $wiersz['odp4'] ?><br/>
  37. </td>
  38. </tr>"
  39. <tbody>
  40. </table>
  41. <br />
  42. <input type="submit" name="zakonczTest" value="Zakończ test"/>
  43. </form>
  44. </div>
ShadowD
Oooo błagam popraw to tak się nie pisze!! Wywal echo miliard razy!
mokater
Czy wie ktoś może jak to zrobić ?
zamper
Użyj jQuery!

To polecenie blokuje wszystkie checkboxy:
Kod
$('#div_w_ktorym_jest_test > input[type="checkbox"]').atrr('disabled', true);
mokater
Spróbowałem ogólnie na początku zablokować te checkboxy w celu sprawdzenia czy to działa i bez skutko.
<script type="text/javascript">
$(document).ready(function()
{
$('#okno > input[type="checkbox"]').atrr('disabled', true);
});
</script>
zamper
#okno input[type="checkbox"]
Usuń >
> oznacza, że coś jest bezpośrednio w czymś
mokater
Próbowałem tak już wcześniej i też nie działa.
Tak jak mówiłem jak na sztywno podam id checkboxa tak: $("#check2").attr('disabled',true), to blokuje jeden checkbox w 1 pytaniu.
zamper
A spróbuj bez cudzysłowów tongue.gif
#okno input[type=checkbox]
Zadziała na 100%
mokater
$(#okno input[type=checkbox]).atrr('disabled', true);

Tak wyrzuca mi błąd w składni.
zamper
-.-
A gdzie masz apostrofy?!
$('#okno input[type=checkbox]').atrr('disabled', true);
mokater
Dalej nie blokuje :/

Edit: próbuje na różne sposoby - bez skutku
zamper
attr a nie atrr 0.o
mokater
Ok działa, teraz tylko dostosować odpowiednio.
Dzięki !

Hej, mam jeszcze jedno pytanie związane z tym tematem.
Po upłynięciu czasu chciabym zmienić kolor checkboxów.
Napisałem taki fragment kody w jQuery jednakże, nie działa:
$('.oknoTestu input[type=checkbox]').attr('src', 'images/checkbox-red.png');

Czy wiecie może gdzie jest błąd ?
sazian
checkbox niema atrybutu src
mokater
Ok, mam klase do zmiany tła obrazka tylko jak ją zasosować w jQuery ?
.checkboxZmiana {
background: transparent url('images/checkbox-green.png') 0 1px no-repeat;
display:inline-block;
}
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.