Recuperre qu'une réponse d'une checkbox

Fermé
titof91 - Modifié le 27 mai 2018 à 22:48
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 27 mai 2018 à 22:54
Bonjour,

apparemment je récupère qu'une réponse sur douze choix:

j'ai douze lignes avec trois choix(input checkbox): quand je lance la correction il me prend qu'un choix, je ne vois pas ou est le souci.

voici le code de la première page ou on fait le choix:

echo '<form class="form_exercices_ou_result" action="../correct_exo/correction-exo-alphabet-2.php" method="POST" />';
echo'<div style="display:inline-block;width:450px;min-height:350px;border-right:1px solid #000;">';
foreach($reponses as $cle => $reponse){
echo'<p style="font-size:1.2em;padding:0 20px;">'.$reponse['chiffre'].'</p>'; 
echo '<button class="button_audio_2" onclick="playVid(\'son_1'.$cle.'\')" type="button" value="' . $reponse['mp3'] . '"></button>';
   echo '<audio id="son_1'.$cle.'">';
   echo '<source src="' . $reponse['mp3'] .'" type="audio/mp3">';
   echo '<p>Votre navigateur ne supporte pas le format audio.</p>';
   echo '</audio>';

echo'<p style="text-align:center;width:100px;font-size:1.2em;"><input class="checkbox" style="margin:10px 0 0 0;" type="checkbox" name="' . $cle . '" value="' . $reponse['reponse'] . '" /><img style="margin-left:-25px; margin-top:25px;"  src="'. $reponse['reponse'] .'" width="30px" height="30px" /></p>';
echo'<p style="text-align:center;width:100px;font-size:1.2em"><input class="checkbox" style="margin:10px 0 0 0;"  type="checkbox" name="' . $cle . '" value="' . $reponse['reponse1'] . '" /><img style="margin-left:-25px; margin-top:25px;" src="'. $reponse['reponse1'] .'" width="30px" height="30px" /></p>';
echo'<p style="text-align:center;width:100px;font-size:1.2em"><input class="checkbox" style="margin:10px 0 0 0;"  type="checkbox" name="' . $cle . '" value="' . $reponse['reponse2']  . '" /><img style="margin-left:-25px; margin-top:25px;"  src="'. $reponse['reponse2'] .'" width="30px" height="30px" /></p>'; 

}
echo'</div>';
echo'<div style="display:inline-block;width:450px;height:350px;">';
foreach($reponses1 as $cle1 => $reponse1){
echo'<p style="font-size:1.2em;padding:0 20px;">'.$reponse1['chiffre'].'</p>'; 
echo '<button class="button_audio_2" onclick="playVid(\'son_1'.$cle.'\')" type="button" value="' . $reponse1['mp3'] . '"></button>';
   echo '<audio id="son_1'.$cle1.'">';
   echo '<source src="' . $reponse1['mp3'] .'" type="audio/mp3">';
   echo '<p>Votre navigateur ne supporte pas le format audio.</p>';
   echo '</audio>';


echo'<p style="text-align:center;width:100px;font-size:1.2em;"><input class="checkbox" style="margin:10px 0 0 0;" type="checkbox" name="' . $cle1. '" value="' . $reponse1['reponse'] . '" /><img style="margin-left:-25px; margin-top:25px;" src="'. $reponse1['reponse'] .'" width="30px" height="30px" /></p>';
echo'<p style="text-align:center;width:100px;font-size:1.2em"><input class="checkbox" style="margin:10px 0 0 0;"  type="checkbox" name="' . $cle1 . '" value="' . $reponse1['reponse1'] . '" /><img style="margin-left:-25px; margin-top:25px;" src="'. $reponse1['reponse1'] .'" width="30px" height="30px" /></p>';
echo'<p style="text-align:center;width:100px;font-size:1.2em"><input class="checkbox" style="margin:10px 0 0 0;"  type="checkbox" name="' . $cle1 . '" value="' . $reponse1['reponse2']  . '" /><img style="margin-left:-25px; margin-top:25px;" src="'. $reponse1['reponse2'] .'" width="30px" height="30px" /></p>'; 

}
echo'</div>';
echo '<div style="display:inline-block;margin-left:-15em;margin-top:2em;" class="correction_center"><input type="submit" name="correction" value="correction"/></div>';
echo '</form>';


et voici un bout du code de la correction:

if (isset($_POST['correction']))
{
foreach($reponses as $cle => $reponse){
$clic = trim($_POST[$cle]);
echo '<button class="button_audio" onclick="playVid(\'son_1'.$cle.'\')" type="button" value="' . $reponse['mp3'] . '"></button>';
echo '<audio id="son_1'.$cle.'">';
echo '<source src="' . $reponse['mp3'] .'" type="audio/mp3">';
echo '<p>Votre navigateur ne supporte pas le format audio.</p>';
echo '</audio>';
foreach($choix as $key => $value){

if(empty($clic) && empty($clic) !== $reponse['reponse'] OR empty($clic) && empty($clic) !== $reponse['reponse1'] OR empty($clic) && empty($clic) !== $reponse['reponse2']){

}else if($clic == $reponse['reponse'] AND $reponse['reponse'] == $value['reponse_fausse'] OR $clic == $reponse['reponse1'] AND $reponse['reponse1'] == $value['reponse_fausse'] OR $clic == $reponse['reponse2'] AND $reponse['reponse2'] == $value['reponse_fausse']){
$point[$cle] = htmlspecialchars($clic);
echo'<p style="text-align:center;width:100px;font-size:1.2em;"><input class="checkbox" style="margin:10px 0 0 0;" type="checkbox" name="' . $cle. '" value="' . $reponse['reponse'] . '" /><img style="margin-left:-25px; margin-top:25px;" src="'.$reponse['reponse'].'" width="30px" height="30px" /></p>';
echo'<p style="text-align:center;width:100px;font-size:1.2em"><input class="checkbox" style="margin:10px 0 0 0;" type="checkbox" name="' . $cle . '" value="' . $reponse['reponse1'] . '" /><img style="margin-left:-25px; margin-top:25px;" src="'.$reponse['reponse1'].'" width="30px" height="30px" /></p>';
echo'<p style="text-align:center;width:100px;font-size:1.2em"><input class="checkbox" style="margin:10px 0 0 0;" type="checkbox" name="' . $cle . '" value="' . $reponse['reponse2'] . '" /><img style="margin-left:-25px; margin-top:25px;" src="'.$reponse['reponse2'].'" width="30px" height="30px" /></p>';
echo'<figure style="display:inline-block;margin-top:1em;">';
echo'<img src="../img/ok1.jpg" alt="reponse bonne" width:"55" height="55" /></figure><br />';

break;
}else if($clic != $reponse['reponse'] AND $reponse['reponse'] != $value['reponse_fausse'] OR $clic != $reponse['reponse1'] AND $reponse['reponse1'] != $value['reponse_fausse'] OR $clic != $reponse['reponse2'] AND $reponse['reponse2'] != $value['reponse_fausse']){
$errors[$cle] = htmlspecialchars($clic);
echo'<p style="text-align:center;width:100px;font-size:1.2em;"><input class="checkbox" style="margin:10px 0 0 0;" type="checkbox" name="' . $cle. '" value="' . $reponse['reponse'] . '" /><img style="margin-left:-25px; margin-top:25px;" src="'.$reponse['reponse'].'" width="30px" height="30px" /></p>';
echo'<p style="text-align:center;width:100px;font-size:1.2em"><input class="checkbox" style="margin:10px 0 0 0;" type="checkbox" name="' . $cle . '" value="' . $reponse['reponse1'] . '" /><img style="margin-left:-25px; margin-top:25px;" src="'.$reponse['reponse1'].'" width="30px" height="30px" /></p>';
echo'<p style="text-align:center;width:100px;font-size:1.2em"><input class="checkbox" style="margin:10px 0 0 0;" type="checkbox" name="' . $cle . '" value="' . $reponse['reponse2'] . '" /><img style="margin-left:-25px; margin-top:25px;" src="'.$reponse['reponse2'].'" width="30px" height="30px" /></p>';
echo'<figure style="display:inline-block;"><img src="../img/ok.jpg" alt="reponse fausse" width:"55" height="55" /></figure><br />';

break;

}
}
}


merci pour vos réponses, j en serais ravie

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
27 mai 2018 à 22:54
Bonsoir,

Ton code est illisible.
Il faudrait déjà commencer par le poster en utilisant la coloration syntaxique ( j'ai édité ton premier code pour le mettre..pas le second).
Il faudrait aussi penser à faire de l'indentation....

Pour mettre de la coloration syntaxique.. il suffit d'indiquer le LANGAGE dans les balises de code
Exemple :
<code php>
echo "ceci est du code php ";
</code>
ce qui donne
echo "ceci est du code php ";



Ensuite, pour savoir ce qui est envoyé par ton formulaire... commence par faire un print_r($_POST); au début de ton code et montre nous ce que ça donne ( après avoir coché plusieurs réponses et submit ton formulaire bien entendu...)
On saura si le souci vient de ton formulaire... ou si le problème est après dans son traitement......

0