Bonjour,
je dois réaliser un QCM grâge à php, avec les boutons radio tout se passe bien, en revanche je n'arrive pas à traiter mes checkbox, j'ai essayé avec l'instruction switch mais il ne traite pas les cas particuliers relatifs aux cases cochées, il traite comme si l'utilisateur avait coché tous les choix possibles, je débute et je pense que mon erreur est toute bête mais ca fait des jours que je suis dessus, que je parcours le web en vain ...

Mon code html :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<LI><FONT color="purple">Parmi ces 4 parties du sabot, laquelle/lesquelles ne se trouvent pas SOUS le sabot ?</FONT>
  <br></br>
 
     <input type="checkbox" name="choice8[]" value="0"> La mamelle<br>
     <input type="checkbox" name="choice8[]" value="1"> La pince<br>
     <input type="checkbox" name="choice8[]" value="2"> La sole<br>
     <input type="checkbox" name="choice8[]" value="3"> La fourchette<br> 
  <br></br>

Et mon code php pour traiter les réponses :
avec switch :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if (isset($_POST['choice8']))
	echo ("<p><font color='purple'>Vous avez répondu à la 8ème question :</font><br>"); 
	for ($i=0; $i<sizeof($choice8);$i++)
 
switch ($i) {
case "0":
	echo "La mamelle : c'est une des bonnes réponses, elle vous apporte des points<br>";
	$score +=1.5;
case "1":
	echo "La pince : c'est une des bonnes réponses, elle vous apporte des points<br>";
	$score +=1.5;
case "2":
	echo "La sole : c'est une mauvaise réponse, elle se situe sous le sabot, vous perdez 1 point<br>";
	$score -=1;
case "3":
	echo "La fourchette : c'est une mauvaise réponse, elle se situe sous le sabot, vous perdez 1 point<br>";
	$score -=1;
	break;
default:
    echo "vous n'avez rien répondu, vous ne perdez ni ne gagniez de points<br>";
}
J'ai aussi tenté avec une instruction IF : dans ce cas là il n'affiche carrément plus aucune réponse !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
echo ("<p><font color='purple'>Vous avez répondu à la 8ème question :</font><br>"); 
 
if ($choice8 == "La mamelle")
{ 
	$score +=1.5;
	echo "<font color='green'>La mamelle : c'est une bonne réponse, elle vous apporte des points<br>";
} 
elseif ($choice8 == "La pince")
{ 
	$score +=1.5;
	echo "<font color='green'>La pince : c'est une bonne réponse, elle vous apporte des points<br>";
}
elseif ($choice8 == "La sole")
{ 
	$score -=0.5;
	echo "<font color='green'>La sole : c'est une mauvaise réponse, elle vous fait perdre des points<br>";
}
elseif ($choice8 == "La fourchette")
{ 
	$score -=0.5;
	echo "<font color='green'>La fourchette : c'est une mauvaise réponse, elle vous fait perdre des points<br>";
}