Ik heb 12 vragen, deze wil ik om de beurt afbeelden op het scherm. Dus als vraag 1 beantwoord is krijgt men pas vraag twee te zien, etc. Dit werkt, het probleem is alleen dat ik het niet voor elkaar krijg de antwoorden op te halen uit elke vraag. Ik zou natuurlijk voor elke vraag een aparte pagina kunnen maken, maar dat lijkt me een beetje nutteloos.
Dit is wat ik tot dusver heb gemaakt:
De vragen bestaan uit twee radiobuttons met antwoorden a of b. Voor het gemak is even alles wat a is goed en alles wat b is fout. Iedere set is genaamd 1 t/m 12.
$vraag[x] zijn vragen die bovenaan in het document staan, die vaker terugkomen. Hierin zit de form en de button verwerkt:
Ik weet dat de code netter kan, maar ik heb zoveel geschoven en geprobeerd dat op dit moment dit de meeste stabiele versie is. Dergelijke fouten haal ik er zelf nog uit.
* Ik weet dat het netter zou zijn om
of beter nog
In de functie op te nemen, maar op één of andere manier komt hij dan tot vraag twee en daar houdt de pret op. Hij gaat niet verder. Bij $_SESSION["telleriq"]++ doet hij overigens al helemaal niks terwijl dat volgens mij ook zou moeten werken.
Dit is wat ik tot dusver heb gemaakt:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| function uitslag() { $lijst = array ($_POST['1'], $_POST['2'], $_POST['3'], $_POST['4'], $_POST['5'], $_POST['6'], $_POST['7'], $_POST['8'], $_POST['9'], $_POST['10'], $_POST['11'], $_POST['12']); switch ( $lijst[$a] ){ case "a": $uitslagiq++; $_SESSION["uitslagiq"] = $uitslagiq; echo "$goed $antw[$a]"; break; default: echo "$fout $antw[$a]"; break;} } uitslag(); if (!isset($telleriq)) { $telleriq=0; } if (!isset($uitslagiq)) { $uitslagiq=0; } for ($a=0; $a<12; $a++) { switch ( $telleriq ) { case "0": echo "$vraag[0]"; $telleriq=1; $_SESSION["telleriq"] = $telleriq; uitslag(); exit; break; case "1": echo "$vraag[1]"; $telleriq=2; $_SESSION["telleriq"] = $telleriq; uitslag(); exit; break; case "2": echo "$vraag[2]"; $telleriq=3; $_SESSION["telleriq"] = $telleriq; uitslag(); exit; break; case "3": echo "$vraag[3]"; $telleriq=4; $_SESSION["telleriq"] = $telleriq; uitslag(); exit; break; case "4": echo "$vraag[4]"; $telleriq=5; $_SESSION["telleriq"] = $telleriq; uitslag(); exit; break; case "5": echo "$vraag[5]"; $telleriq=6; $_SESSION["telleriq"] = $telleriq; uitslag(); exit; break; case "6": echo "$vraag[6]"; $telleriq=7; $_SESSION["telleriq"] = $telleriq; uitslag(); exit; break; case "7": echo "$vraag[7]"; $telleriq=8; $_SESSION["telleriq"] = $telleriq; uitslag(); exit; break; case "8": echo "$vraag[8]"; $telleriq=9; $_SESSION["telleriq"] = $telleriq; uitslag(); exit; break; case "9": echo "$vraag[9]"; $telleriq=10; $_SESSION["telleriq"] = $telleriq; uitslag(); exit; break; case "10": echo "$vraag[10]"; $telleriq=11; $_SESSION["telleriq"] = $telleriq; uitslag(); exit; break; case "11": echo "$vraag[11]"; $telleriq=12; $_SESSION["telleriq"] = $telleriq; uitslag(); exit; break; default: echo "$uitslagiq"; unset($_SESSION["telleriq"]); break; }} ?> ?> |
De vragen bestaan uit twee radiobuttons met antwoorden a of b. Voor het gemak is even alles wat a is goed en alles wat b is fout. Iedere set is genaamd 1 t/m 12.
$vraag[x] zijn vragen die bovenaan in het document staan, die vaker terugkomen. Hierin zit de form en de button verwerkt:
PHP:
1
| $vraag[0] = "<form name=\"iq0\" method=\"post\" action=\"$PHP_SELF\">1.De eerste vraag.<br><br><input name=\"1\" type=\"radio\" value=\"a\"> Ja <br><input name=\"1\" type=\"radio\" value=\"b\"> Nee <br><br><input name=\"Submit\" type=\"submit\" value=\"Juist / Onjuist\"></form>"; |
Ik weet dat de code netter kan, maar ik heb zoveel geschoven en geprobeerd dat op dit moment dit de meeste stabiele versie is. Dergelijke fouten haal ik er zelf nog uit.
* Ik weet dat het netter zou zijn om
PHP:
1
| $telleriq++; $_SESSION["telleriq"] = $telleriq |
of beter nog
PHP:
1
| $_SESSION["telleriq"]++ |
In de functie op te nemen, maar op één of andere manier komt hij dan tot vraag twee en daar houdt de pret op. Hij gaat niet verder. Bij $_SESSION["telleriq"]++ doet hij overigens al helemaal niks terwijl dat volgens mij ook zou moeten werken.
[ Voor 13% gewijzigd door Verwijderd op 22-10-2006 02:33 ]