Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Problem ze zliczaniem poprawnych odpowiedzi w formularzu
ZbigniewN
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 6.09.2012

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


Zaczynam zabawę z pisaniem w PHP, proszę o wyrozumiałość. Muszę zrobić kilka formularzy i na tym się zatrzymałem. Po wypełnieniu formularza miały się zliczać poprawne odpowiedzi i na końcu chciałem dostać informację o ich ilości. Myślałem też by dodać coś, by ilość poprawnych odpowiedzi pokazała się dopiero po naciśnięciu przycisku ale nad tym się jeszcze nie zastanawiałam. Problem mam taki, że nie zliczają mi się te dobre odpowiedzi.

  1. <html>
  2. <head>
  3. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  4. </head>
  5. <body>
  6. <form action="i.php" method="post">
  7. Pyt. 1: Jakiś tekst<br />
  8. A. <input type="radio" name="pyt1" id="odp_a" value="a"><label for="odp_a">jakaś odpowiedź</label><br />
  9. B. <input type="radio" name="pyt1" value="b"><br />
  10. C. <input type="radio" name="pyt1" value="c"><br />
  11. D. <input type="radio" name="pyt1" value="d"><br />
  12. Pyt. 2: Jakiś tekst<br />
  13. A. <input type="radio" name="pyt2" value="a"><br />
  14. B. <input type="radio" name="pyt2" value="b"><br />
  15. C. <input type="radio" name="pyt2" value="c"><br />
  16. D. <input type="radio" name="pyt2" value="d"><br />
  17. <input type="reset" value="Usuń informacje"><br /><br />
  18. <input type="button" value="Zakończ test"><br />
  19. </form>
  20. </body>
  21. </html>
  22. <?php
  23. $pkt = 0;
  24. $pkt = $pkt + 1;
  25. if (count($_POST)==2)
  26. {
  27. if ($_POST["pyt1"] =="a") {$pkt = $pkt + 1;}
  28. if ($_POST["pyt2"] =="b") {$pkt = $pkt + 1;}
  29. }
  30. {
  31. echo "Otrzymałeś punktów "; echo $pkt;
  32. }
  33. ?>


Ten post edytował ZbigniewN 6.09.2012, 22:29:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pawel_W
post
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


strcasecmp jest w tym momencie zbędne bo w manualu jest wyraźnie pokazane, że $_SERVER['REQUEST_METHOD'] zwraca wartości uppercase (GET, HEAD, POST, PUT)

co do reszty, zakładam, że pytań będzie więcej, prościej by Ci było zrobić to tak:

  1. if($_SERVER['REQUEST_METHOD'] == 'POST'){
  2. $answers = array('a', 'b', ...); // odpowiedzi na kolejne pytania
  3. $pts = 0;
  4. for($i=0,$c=count($answers);$i<$c;$i++){
  5. if(isset($_POST['pyt'.($i+1)]) && $_POST['pyt'.($i+1)] == $answers[$i]) $pts++;
  6. }
  7. echo 'Otrzymałeś punktów: ' . $pts;
  8. }
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: 6.10.2025 - 23:41