Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Sprawdzanie prawidłowości pól w teście
misiol
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 12.03.2008

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


Witam.
Mam taki oto prosty skrypt generujący pytania i możliwe do wyboru odpowiedzi w teście.
  1. <?
  2.  
  3. $pytania=array('Pytanie1', 'Pytanie2', 'Pytanie3');
  4. $odpowiedzi=array('tak//nie//nie wiem', 'wczoraj//jutro//costam', '3//2//1');
  5. $prawidlowe=array(0, 0, 2);
  6.  
  7. for($i=0;$i<count($pytania);++$i)
  8. {
  9. echo '<tr><td><p ...>'.$pytania[$i].'</p></td></tr>';
  10.  
  11. foreach(explode('//', $odpowiedzi[$i]) as $odp)
  12. {
  13. echo '<tr> <input type="radio" name="odp['.$i.'][]" />'.$odp.'</tr>';
  14. }
  15. }
  16.  
  17. ?>


Problem jest tego typu, że nie mogę wymyśleć warunku sprawdzającego poprawność wybranych odpowiedzi. Byłbym wdzięczny gdyby ktokolwiek mógł mi podsunąć rozwiązanie, albo chociaż podpowiedzieć jak się do tego zabrać. pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
misiol
post
Post #2





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 12.03.2008

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


No więc doszedłem do czegoś takiego:

  1. <?php
  2. $p1 = $_POST[$odp[0]];
  3.  $p2 = $_POST[$odp[1]];
  4.  $p3 = $_POST[$odp[2]];
  5.  
  6. $odpowiedzi_zle = array();
  7.  $odpowiedzi_dobre = array();
  8.  
  9.  if( $p1=='' || $p2=='' || $p3=='')
  10. {
  11.      echo 'Wypełnij cały quiz!';
  12. }
  13. else
  14. {
  15.      $wynik=0;
  16.      if ($_POST[$odp0] == $prawidlowe[0]) {
  17.           $wynik++;
  18.           $odpowiedzi_dobre['p1'] = '1';
  19. }
  20.      else
  21.      {
  22.           $odpowiedzi_zle['p1'] = '1';
  23.       }
  24.       if($_POST[$odp1] == $prawidlowe[1])
  25.       {
  26.           $wynik++;
  27.           $odpowiedzi_dobre['p2'] = '2';
  28.       }
  29.      else
  30.      {
  31.           $odpowiedzi_zle['p2'] = '2';
  32.      }
  33.      if($_POST[$odp2] == $prawidlowe[2])
  34.      {
  35.           $wynik++;
  36.           $odpowiedzi_dobre['p3'] = '3';
  37.      else
  38.      {
  39.           $odpowiedzi_zle['p3'] = '3';
  40.      }
  41. $wynik = ($wynik /* 100) + 0.;
  42. $ilosc_odp_dobrych = count($odpowiedzi_dobre);
  43.  
  44. if($wynik <= 50.) {
  45.      echo 'nie udalo ci sie osiagnac wymaganej liczby prawidlowych odpowiedzi';
  46. }
  47. else {
  48.     echo 'brawo, zaliczyles test';
  49.     echo 'odpowiedizales poprawnie na '.$ilosc_odp_dobrych.' pytan';
  50. }
  51. ?>


Ten post edytował misiol 29.03.2008, 18:27:31
Go to the top of the page
+Quote Post
pyro
post
Post #3





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Cytat(misiol @ 29.03.2008, 18:21:42 ) *
No więc doszedłem do czegoś takiego:

[php]
<?php
$p1 = $_POST[$odp[0]];
$p2 = $_POST[$odp[1]];
$p3 = $_POST[$odp[2]];

$odpowiedzi_zle = array();
$odpowiedzi_dobre = array();

if( $p1=='' || $p2=='' || $p3=='')
{
echo 'Wypełnij cały quiz!';
}
else
{
$wynik=0;
if ($_POST[$odp0] == $prawidlowe[0]) {
$wynik++;
$odpowiedzi_dobre['p1'] = '1';
}
else
{
$odpowiedzi_zle['p1'] = '1';
}
if($_POST[$odp1] == $prawidlowe[1])
{
$wynik++;
$odpowiedzi_dobre['p2'] = '2';
}
else
{
$odpowiedzi_zle['p2'] = '2';
}
if($_POST[$odp2] == $prawidlowe[2])
{
$wynik++;
$odpowiedzi_dobre['p3'] = '3';
else
{
$odpowiedzi_zle['p3'] = '3';
}
$wynik = ($wynik / 3 * 100) + 0.1 ;
$ilosc_odp_dobrych = count($odpowiedzi_dobre);

if($wynik <= 50.1 ) {
echo 'nie udalo ci sie osiagnac wymaganej liczby prawidlowych odpowiedzi';
}
else {
echo 'brawo, zaliczyles test';
echo 'odpowiedizales poprawnie na '.$ilosc_odp_dobrych.' pytan';
}


i? jakis problem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ?
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: 27.12.2025 - 20:09