bonjour j'ai un souci,
quand je clic sur le bouton correction j aimerai que le resultat s affiche sur une autre page, le resultat s affiche bien sur la meme page, mais des que je rentre l 'adresse de la deuxieme page rien a faire pas de resultat....par contre de message d erreur.
le script:
merci d avance
quand je clic sur le bouton correction j aimerai que le resultat s affiche sur une autre page, le resultat s affiche bien sur la meme page, mais des que je rentre l 'adresse de la deuxieme page rien a faire pas de resultat....par contre de message d erreur.
le script:
<?php
/**
* cette fonction sert à insérer ton select devant ton mot
* @param string $nom_du_champ le nom de ton champ(name)
* @return string retourne ton balisage HTML
*/
function displaySelectReponse( $nom_du_champ ){
//déclaration des différente options du select
$options = array(
'0' => '',
'un' => 'un',
'une' => 'une',
);
//construction du html du select
$select = '<select name="' . $nom_du_champ . '">';
foreach ($options as $key => $option) {
//re-population des champs avec les valeurs postées
$selected = '';
if(isset($_POST[$nom_du_champ]) && $_POST[$nom_du_champ] === $key){
$selected = 'selected=selected';
}
$select .= '<option ' . $selected . ' value="' . $key . '">' . $option . '</option>';
}
$select .= '</select>';
return $select;
}
/**
* cette fonction sert à afficher les résultats
* @param string $nom_du_champ le nom de ton champ(name)
* @return string retourne ton balisage HTML
*/
function displayReponse( $nom_du_champ){
global $errors, $reponses;
$mot = $reponses[$nom_du_champ]['mot'];
$reponse_class = 'ok';
$resultat = '';
//si le nom du champ n'est pas dans le tableau d'erreurs
if( array_key_exists( $nom_du_champ, $errors) ){
$reponse_class = 'error';
$resultat = ' (' . $reponses[$nom_du_champ]['reponse'] . ' ' . $mot . ')';
}
$reponse = '<p class="' . $reponse_class . '">';
$reponse .= '<span style="margin-left:35%; font-size:1.3em;" class="reponse">' . htmlspecialchars($_POST[$nom_du_champ]) . '</span><span style="margin-left:1%;font-size:1.3em;"">' . $mot.'</span>';
$reponse .= ' <span style="color:red;font-size:1.3em;"" class="resultat">'. $resultat . '</span> ';
$reponse .= '<p>';
return $reponse;
}
//déclaration de variables d'init
$un = 'un';
$une = 'une';
$form_ok = false; //on initialise cette variable pour savoir si le formulaire est posté et ne contient plus d'erreur (si tous les champs sont remplis)
//tes réponses, en plus tu listes tous les champs que tu attends [cligne]
$reponses = array(
'chx' => array('reponse' => $une, 'mot' => 'bague'),
'chx_1' => array('reponse' => $un, 'mot' => 'gilet'),
'chx_2' => array('reponse' => $un, 'mot' => 'gobelet'),
'chx_3' => array('reponse' => $un, 'mot' => 'garage'),
'chx_4' => array('reponse' => $un, 'mot' => 'gâteau'),
'chx_5' => array('reponse' => $une, 'mot' => 'mangue'),
'chx_6' => array('reponse' => $une, 'mot' => 'figue'),
'chx_7' => array('reponse' => $un, 'mot' => 'guidon'),
'chx_8' => array('reponse' => $une, 'mot' => 'bougie'),
'chx_9' => array('reponse' => $une, 'mot' => 'guitare'),
);
//après il faut que tu raisonnes en boucles et factoriser tes conditions
//si le formulaire est posté (j'opterai plus pour une méthode POST)
//pas besoin de vérifier si tous tes champs sont postés pour le moment, juste la valeur de ton submit
if ( isset($_POST['correction']) && $_POST['correction'] === 'correction')
{
//traitement du formulaire affichage des réponses ou des erreurs
//vérification si tous les champs sont remplis
$empty = false;
foreach ($reponses as $key => $value) {
//itération des champs du formulaire
if( empty($_POST[$key])){
//si il y a au moins un champ vide, il y a erreur
$empty = true;
}
}
if( $empty ){ //si on a une erreur : tous les champs ne sont pas remplis
$msg = '<p>Veuillez cochez toutes les cases !</p>';
echo $msg;
}else{
$form_ok = true; //le formulaire est valide
//on vérifie les réponses
//initialisation du tableau qui contiendra les fautes
$errors = array();
foreach ($reponses as $key => $value) {
if( $_POST[$key] != $value['reponse'] ){
//si la réponse est fausse, on enregistre la mauvaise réposne dans le tableau
$errors[$key] = htmlspecialchars($_POST[$key]);
}
}
}
}
if( ! $form_ok )
{ //on affiche le formulaire ?>
<form class="form_exercices_ou_1" action="inc/inc_correction.php" method="POST" />
<article class="art_option">
<p><?php echo displaySelectReponse( 'chx' ); ?> ba<b>gue</b></p>
<p><?php echo displaySelectReponse( 'chx_1' ); ?> <b>gi</b>let</p>
<p><?php echo displaySelectReponse( 'chx_2' ); ?> <b>go</b>belet</p>
<p><?php echo displaySelectReponse( 'chx_3' ); ?> gara<b>ge</b></p>
<p><?php echo displaySelectReponse( 'chx_4' ); ?> <b>gâ</b>teau</p>
<p><?php echo displaySelectReponse( 'chx_5' ); ?> man<b>gue</b></p>
<p><?php echo displaySelectReponse( 'chx_6' ); ?> fi<b>gue</p>
<p><?php echo displaySelectReponse( 'chx_7' ); ?> <b>guidon</b></p>
<p><?php echo displaySelectReponse( 'chx_8' ); ?> bou<b>gi</b>e</p>
<p><?php echo displaySelectReponse( 'chx_9' ); ?> <b>gui</b>tare</p>
</article>
<input style="margin-top:25%;" class="correction_center" type="submit" name="correction" value="correction"/>
</form>
<?php }else{ ?>
<h2 style="margin-left:30%;padding:2% 0 4% 0;display:inline-block;">Bonnes réponses :</h2><p style="margin-left:2%;border:1px solid #979797;background:#99e3df; padding:1%;width:15%;text-align:center;display:inline-block;"><?php echo count($reponses) - count($errors); ?> / <?php echo count($reponses); ?></p>
<div class="reponses">
<?php foreach ($reponses as $nom_du_champ => $value) {
echo displayReponse( $nom_du_champ, $value['mot']);
}?>
<p><a href="index.php">Recommencer</a></p>
<?php } ?>
merci d avance