Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PRzeprowadzenie testu
darpla
post 22.04.2005, 13:54:08
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 22.04.2005

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


Witam serdecznie wszystkich forumowiczów


Moje pytanie dotyczy przeprowadenia testu za pomocą języka Java Script. W jaki sposób po naciśnięciu przycisku RAdioButton ma być zliczny punkt za poprawną odpowiedź, a 0 pkt za niepoprawną odpowiedź.Następnie punkty mają być zliczane na końcu programu i podawany wynik. Wiem, żeby użyć tutaj tablicy, ale nie mam konkretnego pomysłu, jak to zdefiniować. Może jak zrobię algorytm to mi się rozjaśni.Tymczasem proszę o wskazówki.


Z góry serdecznie dziękuję smile.gif


Pozdrowienia
Go to the top of the page
+Quote Post
Diwi
post 22.04.2005, 14:41:54
Post #2





Grupa: Zarejestrowani
Postów: 245
Pomógł: 4
Dołączył: 22.01.2005

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


no cóż pierwsze co mi się nasuwa to coś takiego:

Kod
<script language="text/javascript">
var pytanie = array();
var punkty = array();

var pytania = array();

ytanie['numer_pytania']['numer_odpowiedzi'] = 'Odpowiedź numer 1';

if (document.nazwa_formularza.nazwa_sekcji_z_select = pytanie['numer_pytania']['numer_odpowiedzi']) {

punkty['numer_pytania'] = tutaj ilosc punktow;

}
</script>

Pisane z pamięci więc nie wiem czy będzie działać
Mam nadzieje że z tego wszystko rozumiesz smile.gif

Podzrawiam
Go to the top of the page
+Quote Post
dasko
post 22.04.2005, 19:04:46
Post #3





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 9.11.2004

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


Po pierwsze: test w JS jest troche bezsensownym rozwiązaniem => zawsze można podejrzeć żródło.

Po drugie: po co dodawać punkty po nacisnieciu pola radio? kod się niepotrzebnie wykonuje, a chyba nie chcesz, żeby użytkownik nie mógł zmieniać swojego wyboru => lepiej zliczać na końcu.

Diwi rzeczywiście pisał z pamięci, trochę mu się pomieszało z php, nie tylko konstrukcja tablic, ale także ogólny brak tablic asocjacyjnych w JavaScripcie => od tego są obiekty.

Jeśli juz musisz skorzystać z JavaScriptu, to proponuje takie rozwiązanie:
Kod
<script>
function check(f) {
    var pkt = 0; // liczba punktów
    var odp = { pyt1: 'dupa', pyt2: 'foo', pyt3: 'bar' }; // lista poprawnych odp.
    var e = f.elements;
    for(k in e) {
                // dodajemy punkt jeśli poprawna
  if(e[k].checked && odp[e[k].name] != undefined && e[k].value == odp[e[k].name]) pkt++;
    alert('Zdobyles ' + pkt + ' punktów');
    return false; // nie wysyłamy formularza
}
</script>


Przykład zastosowania:
  1. <form onsubmit="return check(this);">Pyt 1:
  2. <input name="pyt1" type="radio" value="foo" />
  3. <input name="pyt1" type="radio" value="bar" />
  4. <input name="pyt1" type="radio" value="dupa" /><br />
  5. Pyt 2:
  6. <input name="pyt2" type="radio" value="bar" />
  7. <input name="pyt2" type="radio" value="foo" />
  8. <input name="pyt2" type="radio" value="dupa" /><br />
  9. Pyt 3:
  10. <input name="pyt3" type="radio" value="foo" />
  11. <input name="pyt3" type="radio" value="bar" />
  12. <input name="pyt3" type="radio" value="dupa" /><br />
  13. <input type="submit" />
  14. </form>


Można oczywiście rozbudować, to tylko przykład smile.gif
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: 16.06.2025 - 18:55