Array en switch combinatie
in de head:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$vragen = array("Van wie was het nummer demons?", "Welke kleur is een banaan?", "Door wie zijn de Harry Potter boeken geschreven?", "Hoe heet deel 2 van The Hobbit?", "Welk dier lijkt het meest op de mens?", "Wie organiseerde de New Year Revolution in Miami, 2014-2015?" );
shuffle($vragen);
$vraag = key($vragen);
$devraag = $vragen[$vraag];
$antwoord = "";
?>
$vragen = array("Van wie was het nummer demons?", "Welke kleur is een banaan?", "Door wie zijn de Harry Potter boeken geschreven?", "Hoe heet deel 2 van The Hobbit?", "Welk dier lijkt het meest op de mens?", "Wie organiseerde de New Year Revolution in Miami, 2014-2015?" );
shuffle($vragen);
$vraag = key($vragen);
$devraag = $vragen[$vraag];
$antwoord = "";
?>
en in de body:
Code (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
33
34
35
36
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
33
34
35
36
<?php
if (isset($_POST["versturen"]))
{
switch($vragen)
{
case "0"; $antwoord="imagine dragons"; break;
case "1"; $antwoord="geel"; break;
case "2"; $antwoord="j.k. rowling"; break;
case "3"; break;
case "4"; $antwoord="de aap"; break;
case "5"; $antwoord="armando christian perez"; break;
default; echo "foutmelding"; break;
}
$poging = $_POST["poging"];
if ($poging == $antwoord)
{
echo "Goed <br>";
echo "<a href=\"" . $_SERVER["PHP_SELF"] . "\" >Volgende Vraag</a>";
}
else
{
echo "Fout <br>";
echo "Het antwoord was $antwoord <br>";
echo "<a href=\"" . $_SERVER["PHP_SELF"] . "\" >Volgende Vraag</a>";
}
}
else
{
echo "$devraag";
echo "<form name = \"quiz\" method = \"post\" action=\"$_SERVER[PHP_SELF]\">
Antwoord: <input type = \"text\" name = \"poging\" style=\"width: 500px\">
<br><br>
<input type = \"submit\" name = \"versturen\" value = \"Verstuur\">
</form>";
}
?>
if (isset($_POST["versturen"]))
{
switch($vragen)
{
case "0"; $antwoord="imagine dragons"; break;
case "1"; $antwoord="geel"; break;
case "2"; $antwoord="j.k. rowling"; break;
case "3"; break;
case "4"; $antwoord="de aap"; break;
case "5"; $antwoord="armando christian perez"; break;
default; echo "foutmelding"; break;
}
$poging = $_POST["poging"];
if ($poging == $antwoord)
{
echo "Goed <br>";
echo "<a href=\"" . $_SERVER["PHP_SELF"] . "\" >Volgende Vraag</a>";
}
else
{
echo "Fout <br>";
echo "Het antwoord was $antwoord <br>";
echo "<a href=\"" . $_SERVER["PHP_SELF"] . "\" >Volgende Vraag</a>";
}
}
else
{
echo "$devraag";
echo "<form name = \"quiz\" method = \"post\" action=\"$_SERVER[PHP_SELF]\">
Antwoord: <input type = \"text\" name = \"poging\" style=\"width: 500px\">
<br><br>
<input type = \"submit\" name = \"versturen\" value = \"Verstuur\">
</form>";
}
?>
Heeft iemand enig idee hoe ik de switch en de array goed kan koppelen?
Toevoeging op 27/03/2015 15:40:50:
Ik heb het overigens ook geprobeerd met een andere vorm van array:
$vragen[0] = "Van wie was het nummer demons?";
$vragen[1] = "Welke kleur is een banaan?";
$vragen[2] = "Door wie zijn de Harry Potter boeken geschreven?";
$vragen[3] = "Hoe heet deel 2 van The Hobbit?";
$vragen[4] = "Welk dier lijkt het meest op de mens?";
$vragen[5] = "Wie organiseerde de New Year Revolution in Miami, 2014-2015?";
Echter kreeg ik dit ook niet voor elkaar
Nu ik er over nadenk: je hebt dit hele switch-statement niet nodig, omdat je vraag en antwoord bij elkaar op kunt slaan in je array. De informatie die je moet versturen blijft hetzelfde (vraag nummer en eigen antwoord).
dit:
Geen Puntcomma maar een dubbele punt
$array = ("kip"=>"dier", "keuken"=>"huis");
$vraag = array_rand($array);
$antwoord = $array[$vraag];
maar dan vond het programma de helft van de tijd dat kip bij huis hoorde en keuken bij dier...
ik heb ondertussen iets nieuws geprobeerd met de switch:
switch($devraag)
{
case $devraag== "Van wie was het nummer demons?"; $antwoord="imagine dragons"; break;
case $devraag== "Welke kleur is een banaan?"; $antwoord="geel"; break;
case $devraag== "Door wie zijn de Harry Potter"; $antwoord="j.k. rowling"; break;
case $devraag== "Hoe heet deel 2 van The Hobbit?"; break;
case $devraag== "Welk dier lijkt het meest op de mens?"; $antwoord="de aap"; break;
case $devraag== "Wie organiseerde de New Year Revolution in Miami, 2014-2015?"; $antwoord="armando christian perez"; break;
default; echo "foutmelding"; break;
}
nu krijg ik er meestal geen default uit, maar weer random antwoorden...
Toevoeging op 27/03/2015 16:02:10:
de dubbelepunt of puntkomma maakt niet uit, net geprobeerd maar maakt geen verschil
Toevoeging op 27/03/2015 16:02:21:
de dubbelepunt of puntkomma maakt niet uit, net geprobeerd maar maakt geen verschil
Toevoeging op 27/03/2015 16:05:07:
Thomas van den Heuvel, weet u ook hoe ik het voor elkaar kan krijgen dat het programma onthoudt welke vraag is gekozen?
Dit nieuwe script gaat sowieso niet verken.
En bij case 3 staat niets in
case 3 weer ingevuld, had per ongeluk weggehaald, dubbele punten heb ik, maar wat zou ik anders kunnen proberen?
Mogelijke structuurverbetering van vragen-array:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20