Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Prosty skrypt na quiz
folt3k
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 18.02.2014

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


Witam,

Postanowiłem stworzyć quiz w PHP i zadanie to po części mi się udało. Quiz, którego wszystkie pytania są na jednej stronie działa bez zarzutu.

Ale chodzi mi o stworzeniu quizu, w którym po kliknięciu w przycisk "Odpowiedz" ładuję się nowa strona z nowym pytaniem.

Próbowałem różnych sposobów, gdzie z strony pytanie1.php otwierało stronę pytanie2.php, a z kolei z tej pytanie3.php.
Ale niestety nie działa to. Proszę o udzielenie informacji jak mam się za to zabrać, pozdrawiam!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Skrypt musi być uniwersalny, więc może umieść pytania i odpowiedzi np. w pliku (zauważ, że może być różna ilość odpowiedzi):
Cytat
Pytanie 1|Odpowiedź A|Odpowiedź B|Odpowiedź C|
Pytanie 2|Odpowiedź A|Odpowiedź B|Odpowiedź C|Odpowiedź D|Odpowiedź E
Pytanie 3|Odpowiedź A|Odpowiedź B|Odpowiedź C|Odpowiedź D

A potem pobierałbyś pytania:
  1. $pytania = file("test.txt");
  2.  
  3. $komunikat5 = "Genialnie";
  4. $komunikat4 = "Bardzo dobrze";
  5. $komunikat3 = "Średnio";
  6. $komunikat2 = "Słabo";
  7. $komunikat1 = "Lipa";
  8.  
  9. $f = $_POST["f"];
  10. $wyniki = $_POST["wyniki"];
  11. srand((double)microtime() * 1000000);
  12.  
  13. if ($wyniki>0) {
  14. $ile = count($pytania); $dobre = 0;
  15. for ($o=0; $o<$ile ;$o++)
  16. if ($f[$o] == 1)
  17. $dobre++;
  18. $srednia = sprintf("%2d", ($dobre / $ile) * 100);
  19. echo "Poprawne odpowiedzi: $dobre z $ile. ";
  20. echo "Zaliczone $srednia procent testu.<p>";
  21. if ($srednia <= 25) echo $komunikat1;
  22. if ($srednia > 25 && $srednia <= 50) echo $komunikat2;
  23. if ($srednia > 50 && $srednia <= 75) echo $komunikat3;
  24. if ($srednia > 75 && $srednia <= 99) echo $komunikat4;
  25. if ($srednia == 100) echo $komunikat5;
  26. echo "";
  27. } else {
  28. echo "<form action=\"quiz2.php\" method=\"post\">";
  29. echo "<input type=\"hidden\" name=\"wyniki\" value=\"1\" />";
  30. $ile = count($pytania);
  31. for($i=0;$i<$ile;$i++) {
  32. $nr = array_rand($pytania);
  33. $tmp = $pytania[$nr];
  34. $pytania[$nr] = $pytania[count($pytania) - 1];
  35. $pytania[count($pytania) - 1] = $tmp;
  36. $pyt = explode("|", array_pop($pytania));
  37. echo "<p><strong>";
  38. echo $i + 1;
  39. echo ". $pyt[0] </strong><br>";
  40. for ($b=1;$b<=count($pyt)-1;$b++)
  41. $odp[] = "<input type=\"radio\" name=\"f[$i]\" value=\"$b\" />$pyt[$b]<br />";
  42. $ileodp = count($odp);
  43. for($io=0;$io<$ileodp;$io++) {
  44. $nr = array_rand($odp);
  45. $tmp = $odp[$nr];
  46. $odp[$nr] = $odp[count($odp) - 1];
  47. $odp[count($odp) - 1] = $tmp;
  48. echo array_pop($odp);
  49. }
  50. }
  51. echo "<input type=submit value=\" Odpowiedz! \" /></form>";
  52. }

I wszystko mieści się na jednej stronie...
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: 8.10.2025 - 11:45