Page 1 sur 1

Quizz affichage à la suite

Posté : 23 févr. 2012, 12:30
par metiti
Bonjour,
voilà je débute en php et je souhaiterais créer un quizz avec 3 questions qui s'affiche sur la même page mais pas en même temps. L'idéal serait que le visiteur:
  • réponde à la 1ère question,
    validation, on retourne sur la même page
    formulaire 2
    Resultat des points
Voilà le code php que j'utilise, j'ai testé plusieurs choses. Le problème réside dans le résultat d"un formulaire à un autre. En effet, avec le script ci-dessous, je ne peux pas additionner le score du formulaire 1 à celui du formulaire 2. Si vous avez une piste je suis preneur ;)
    <?
$reponse_num_bdd = $data['reponse_num']; //recupérer la valeur de la base mysql
$reponse_num_form = $_POST['reponse_num'];//la mettre dans une variable


//comparer la valeur du formulaire avec celle de la bdd
// si valeur_form = reponse > bravo
if(!empty($_POST['bouton']))
{//voir si une valeur existe si oui alors :
extract($_POST);
				
		//jaffiche le questionnaire 2
				echo "<p>{$data["question"]}</p> ";
				echo "<form method='post' action='index1.php'/>";
				echo "<input name='id' type='hidden' value='{$data["id"]}'/>";
				echo "<input name='resultat' type='hidden' value='$score2'/>";
				echo "<p><input type='radio' name='reponse_num' value='1'/>{$data["reponse1"]}</p> ";
				echo "<p><input type='radio' name='reponse_num' value='2'/>{$data["reponse2"]}</p> ";
				echo "<p><input type='radio' name='reponse_num' value='3'/>{$data["reponse3"]}</p> ";
				echo "<input type='submit' value='Poster' name='bouton'/>";
				echo "</form>";
					if ($reponse_num_bdd == $reponse_num_form) 
					{
					$score2 = 1;
				$score_final = $score2 + $score;
				echo 'tu as '.$score_final.' points!';
					}
					else {
					
					echo 'tu as '.$score.' point!';
					}//affichage resultat	
	}
				else 
				{//jaffiche le questionnaire 1
				echo "<p>{$data["question"]}</p> ";
				echo "<form method='post' action='index1.php'/>";
				echo "<input name='id' type='hidden' value='{$data["id"]}'/>";
				echo "<input name='resultat' type='hidden' value='$score'/>";
				echo "<p><input type='radio' name='reponse_num' value='1'/>{$data["reponse1"]}</p> ";
				echo "<p><input type='radio' name='reponse_num' value='2'/>{$data["reponse2"]}</p> ";
				echo "<p><input type='radio' name='reponse_num' value='3'/>{$data["reponse3"]}</p> ";
				echo "<input type='submit' value='Poster' name='bouton'/>";
				echo "</form>";
				
					if ($reponse_num_bdd == $reponse_num_form) 
					{
					 $score = 1;
					}
					else { $score = 0;}//affichage de l'astuce/règle
				}
}
    ?>
Merci d'avance

Re: Quizz affichage à la suite

Posté : 23 févr. 2012, 12:33
par Thibaud C
Hello,
mets des <input type="hidden" name="mon_name" value="ma_value" /> dans le questionnaire 2 avec les valeurs envoyées du questionnaire 1

Re: Quizz affichage à la suite

Posté : 23 févr. 2012, 17:16
par metiti
Hello,
mets des <input type="hidden" name="mon_name" value="ma_value" /> dans le questionnaire 2 avec les valeurs envoyées du questionnaire 1
Je te remercie de ton aide Thibaud. C'est vrai que je n'y avais pas pensée.

Malheureusement, je pense que mon erreur se trouve également ailleurs. Car je n'arrives pas à envoyé mon $score.

Quand je fais un print_r($_POST); après avoir validé le 1er formulaire je me retrouve avec ça :

Code : Tout sélectionner

Array ( [id] => 6 [resultat] => [reponse_num] => 2 [bouton] => Poster )
Je ne vois pas comment je peux envoyer autrement mon $score :/ dans l'input resultat.

Merci d'avance pour toute aide complémentaire

Re: Quizz affichage à la suite

Posté : 23 févr. 2012, 18:23
par Thibaud C
if ($reponse_num_bdd == $reponse_num_form)
{
$score = 1;
}
else { $score = 0;}//affichage de l'astuce/règle
}



peu $etre mettre cette partie avant les echo :)?