Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Odpowiednia strona w zależności od podanych wcześniej odpowiedzi.
Apox
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 16.09.2007

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


Chciałem napisać stronę w formie testu wyboru, która po wybraniu odpowiednich odpowiedzi w formularzu i zatwierdzeniu odeśle do odpowiedniej strony zależnie od wcześniej wybranych odpowiedzi. Naszukałem się po sieci, ale nie znalazłem nic co by tak zadziałało.

Jak ktoś nie rozumie o co mi loto podam mały schemacik jak ja bym to widział:

Mamy n pytań z odpowiedziami... (jedna możliwa odpowiedź przy jednym pytaniu)
Pytanie 1
a) Odpowiedź a)
B) Odpowiedź B)
c) Odpowiedź c)

Pytanie 2
a) Odpowiedź a)
B) Odpowiedź B)
c) Odpowiedź c)

...

Pytanie n
a) Odpowiedź a)
B) Odpowiedź B)
c) Odpowiedź c)

No i szukam skryptu, który po zaznaczeniu wszystkich odpowiedzi i zatwierdzeniu sumowałby udzielone odpowiedzi i np. w przypadku gdy odpowiedź a) powtórzy się 6 razy , B) - 7, c) - 2 otwierałby stronę o nazwie a6b7c2.html

Zaznaczam, że dobrze zdążyłem poznać póki co tylko HTML i z tej perspektywy widzę tylko takie rozwiązanie, ale zdaję sobie sprawę, że istnieje jeszcze słabo mi znany PHP, w którym napewno będzie to inaczej wyglądało. Czekam na pomysły.

PS: Terminy mnie gonią ;)

Ten post edytował Apox 16.09.2007, 23:11:29
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Nattfarinn
post
Post #2





Grupa: Zarejestrowani
Postów: 136
Pomógł: 22
Dołączył: 19.09.2007
Skąd: Sosnowiec

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


Napisane na szybko i prawdopodobnie bardzo "na około" (nie znam za dobrze JS), ale działające. Nie wymaga przesyłania danych z formularza.


  1.  
  2. function Zlicz()
  3. {
  4. var Odpowiedzi = new Array;
  5. Odpowiedzi['a'] = 0;
  6. Odpowiedzi['b'] = 0;
  7. Odpowiedzi['c'] = 0;
  8. var IloscPytan = document.getElementsByName("pytanie").length;
  9. for(var i = 1; i <= IloscPytan; i++)
  10. {
  11. var Pytania = document.forms['quiz'].elements['pytanie'+i];
  12. for(var j = 0; j < Pytania.length; j++)
  13. {
  14. if(Pytania[j].checked) { Odpowiedzi[Pytania[j].value]++; }
  15. }
  16. }
  17. document.getElementById("licznik").innerHTML = 'a' + Odpowiedzi['a'] + 'b' + Odpowiedzi['b'] + 'c' + Odpowiedzi['c'] + '.html';
  18. // document.location = document.getElementById("licznik").innerHTML;
  19. }
  20.  
  21. <form name="quiz">
  22. <div name="pytanie">
  23. Jak się czujesz? <br />
  24. <label><input type="radio" name="pytanie1" value="a"> Źle</label><br />
  25. <label><input type="radio" name="pytanie1" value="b"> Dobrze</label><br />
  26. <label><input type="radio" name="pytanie1" value="c"> Nie sprawdzałem</label><br />
  27. </div><br />
  28.  
  29. <div name="pytanie">
  30. Jak się czujesz? </br>
  31. <label><input type="radio" name="pytanie2" value="a"> Źle</label><br />
  32. <label><input type="radio" name="pytanie2" value="b"> Dobrze</label><br />
  33. <label><input type="radio" name="pytanie2" value="c"> Nie sprawdzałem</label><br />
  34. </div><br />
  35.  
  36. <div name="pytanie">
  37. Jak się czujesz? </br>
  38. <label><input type="radio" name="pytanie3" value="a"> Źle</label><br />
  39. <label><input type="radio" name="pytanie3" value="b"> Dobrze</label><br />
  40. <label><input type="radio" name="pytanie3" value="c"> Nie sprawdzałem</label><br />
  41. </div><br />
  42. </form>
  43.  
  44. <div id="licznik"> </div>
  45.  
  46. <input type="button" value="Podlicz" onclick="Zlicz()">



Edit: Kod działa w 100% na kopiuj/wklej. Nie przenosi jednak do pliku (wyświetla tylko jego nazwę). Żeby przeniesienie miało miejsce, wystarczy zmienić:

  1. document.getElementById("licznik").innerHTML = 'a' + Odpowiedzi['a'] + 'b' + Odpowiedzi['b'] + 'c' + Odpowiedzi['c'] + '.html';
  2. // document.location = document.getElementById("licznik").innerHTML;


na

  1. document.location = 'a' + Odpowiedzi['a'] + 'b' + Odpowiedzi['b'] + 'c' + Odpowiedzi['c'] + '.html';


Dla samych testów, można też się pozbyć na szybko znaków komentarza (//).

Pozdrawiam!

Ten post edytował Nattfarinn 20.09.2007, 14:09:59
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 06:05