mokater
4.02.2013, 20:06:00
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
4.02.2013, 20:30:41
zamper
4.02.2013, 20:58:55
* 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
4.02.2013, 22:00:41
Hej, a jak zrobić aby zdezaktywować wszystkie checkboxy.
W skrypcie mam zawsze cztery checkboxy i wyglądają one tak:
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
4.02.2013, 22:03:33
http:/www.jquery.com
$('#div_w_ktorym_jest_test > input[type="checkbox"]').atrr('disabled', true);
mokater
4.02.2013, 23:31:55
Polecenie w funkcji JS:
$('#okno > input[type="checkbox"]').atrr('disabled', true);
Tak wygląda test:
<div id="okno">
<form action="wykonajTest.php" name="wynikTest" id="wynikTest" method="post">
<?php
?>
<table class=hor-zebra>
<thead>
<tr>
<th scope=col>
<?php echo $wiersz['tresc']; ?> </th>
</tr>
</thead>
<tbody>
<tr class=odd>
<td>
<input type='checkbox' id=check1 name=poprawna[] value = <?php $wiersz['odp1'] ?>> <?php $wiersz['odp1'] ?><br/>
</td>
</tr>
<tr>
<td>
<input type='checkbox' id=check2 name=poprawna[] value = <?php $wiersz['odp2'] ?>> <?php $wiersz['odp2'] ?><br/>
</td>
</tr>
<tr class=odd>
<td>
<input type='checkbox' id=check3 name=poprawna[] value = <?php $wiersz['odp3'] ?>> <?php $wiersz['odp3'] ?><br/>
</td>
</tr>
<tr>
<td>
<input type='checkbox' id=check4 name=poprawna[] value = <?php $wiersz['odp4'] ?>> <?php $wiersz['odp4'] ?><br/>
</td>
</tr>"
<tbody>
</table>
<br />
<input type="submit" name="zakonczTest" value="Zakończ test"/>
</form>
</div>
ShadowD
4.02.2013, 23:55:17
Oooo błagam popraw to tak się nie pisze!! Wywal echo miliard razy!
mokater
5.02.2013, 13:16:04
Czy wie ktoś może jak to zrobić ?
zamper
5.02.2013, 14:06:14
Użyj jQuery!
To polecenie blokuje wszystkie checkboxy:
Kod
$('#div_w_ktorym_jest_test > input[type="checkbox"]').atrr('disabled', true);
mokater
5.02.2013, 14:26:13
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
5.02.2013, 17:22:16
#okno input[type="checkbox"]
Usuń >
> oznacza, że coś jest bezpośrednio w czymś
mokater
5.02.2013, 17:47:40
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
5.02.2013, 20:27:34
A spróbuj bez cudzysłowów
#okno input[type=checkbox]Zadziała na 100%
mokater
5.02.2013, 20:35:34
$(#okno input[type=checkbox]).atrr('disabled', true);
Tak wyrzuca mi błąd w składni.
zamper
5.02.2013, 20:55:57
-.-
A gdzie masz apostrofy?!
$('#okno input[type=checkbox]').atrr('disabled', true);
mokater
6.02.2013, 08:10:12
Dalej nie blokuje :/
Edit: próbuje na różne sposoby - bez skutku
zamper
6.02.2013, 16:57:07
attr a nie atrr 0.o
mokater
7.02.2013, 21:15:27
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
7.02.2013, 21:18:22
checkbox niema atrybutu src
mokater
7.02.2013, 21:30:18
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.