Bonjour,
Voila je rencontre un petit problème avec mon code.
mon but est tous d'abord d'avoir 8 articles avec une image et un champ texte, une fois les champs texte completer je retourne le corrigé avec les bonnes réponses.....
le souci d'une part je ne vois pas le champ texte dans mon article et deuxiemement l'article se repette 8 fois avec la meme image et cela pour les 8 choix....si vous pouviez m'aider j'en serai ravi (trois jours que j'essaye de debuger)je suis débutant en php.
function displaySelectReponse($choix){
if(isset($_POST[$choix])){ /*si la variable n'est pas vide*/
$choix = $_POST['choix'];
if(!empty($choix)){/*si la variable choix n'est pas vide*/
$options = array ('poire', 'boite', 'voiture', 'boire', 'couloir', 'poisson', 'boisson', 'carre-noir');/*creation du tableau value*/
$select .='<p>';
$select="";
foreach($options as $key => $option){/*recupération des valeurs*/
if(isset($choix) && $choix === $key){//re-population des champs avec les valeurs postées
}
$select.='<input name="$choix" value="$key" class="textfield" type="text" size="20" maxlength="60" />';
$select .= '</p>';
}
}
return $select;
}
}
function displayReponse($choix){
global $errors, $reponses;
$mot = $reponses[$choix]['mot'];
$reponse_class = 'ok';
$resultat = '';
if( array_key_exists( $choix, $errors) ){
$reponse_class = 'error';
$resultat = " => ".$reponses[$choix]['reponse'];
}
$reponse = '<li class="' . $reponse_class . '">';
$reponse .= '<span style="font-size:1.3em;" class="reponse">' . htmlspecialchars($_POST[$choix]) . '</span>
<span style="margin-left:1%;font-size:1.3em;"">' . $mot.'</span>';
$reponse .= ' <span style="color:red;font-size:1.3em;margin-left:5%;"" class="resultat">'. $resultat . '</span> ';
$reponse .= '</li>';
return $reponse;
}
$form_ok = false;
$reponses = array(
'chx_0' => array('mot' => 'une', 'reponse' => 'poire','image'=>'img/poire.gif'),
'chx_1' => array('mot' => 'une', 'reponse' => 'boite','image'=>'img/boite.gif'),
'chx_2' => array('mot' =>'une', 'reponse' => 'voiture','image'=>'img/voiture.gif'),
'chx_3' => array('mot' => '', 'reponse' => 'boire','image'=>'img/boire.gif'),
'chx_4' => array('mot' => 'un', 'reponse' => 'couloir','image'=>'img/couloir.gif'),
'chx_5' => array('mot' => 'un', 'reponse' => 'poisson','image'=>'img/poisson.gif'),
'chx_6' => array('mot' => 'une', 'reponse' => 'boisson','image'=>'img/boisson.gif'),
'chx_7' => array('mot' => 'une', 'reponse' => 'carre-noir','image'=>'img/noir.gif'),
);
if ( isset($_POST['correction']) && $_POST['correction'] === 'correction') {
$empty = false;
foreach ($reponses as $key => $value) {
if( empty($_POST[$key])){
$empty = true;
}
}
if( $empty ){
$msg = '<p>Veuillez cochez toutes les cases !</p>';
echo $msg;
}else{
$form_ok = true;
$errors = array();
foreach ($reponses as $key => $value) {
if( $_POST[$key] == $value['reponse'] ){
$errors[$key] = htmlspecialchars($_POST[$key]);
}
}
}
}
?>
<?php
if( ! $form_ok )
{ ?>
<form action="" method="POST" />
<?php
$images = array(
0 =>array ('image' =>'img/poire.gif'),
1 =>array ('image' =>'img/boite.gif'),
3 =>array ('image' =>'img/voiture.gif'),
4 =>array ('image' =>'img/boire.gif'),
5 =>array ('image' =>'img/couloir.gif'),
6 =>array ('image' =>'img/poisson.gif'),
7 =>array ('image' =>'img/boisson.gif'),
8 =>array ('image' =>'img/noir.gif')
);
foreach($images as $image) {
foreach($reponses as $choix => $reponse) {
echo"<article class='content_img'><figure>";
echo"<img src='$image[image]' width='75' height='75' alt='' />";
echo displaySelectReponse($choix);
echo"</figure></article>";
}
}
?>
<input class="correction_center" type="submit" name="correction" value="correction"/>
</form>
<?php } else {?>
<p style="text-align:center;padding:4% 0 0 0;font-size:1.6em;font-weight:bold;display:block;" >Corrigé de l'exercice :</p>
<div class="blc_reponses">
<ol style="text-align:left;" class="reponses">
<?php foreach ($reponses as $choix => $value) {
echo displayReponse($choix);
}?>
</ol>
<h2 style="display:inline-block;">Bonnes réponses :</h2>
<p><?php echo count($reponses) - count($errors); ?> / <?php echo count($reponses); ?></p>
</div>
<div class="main_sec" style="text-align:center;margin-left:-10px;"> <span><a href="exo_ou_1.php">REFAIRE L'EXERCICE</a></span> <span><a href="exo_ou_2.php">EXERCICE SUIVANT</a></span> </div>
<?php } ?>
merci d'avance ....