Résultats d'un quiz en php

Résolu
phpphp Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
phpphp Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je voulais savoir comment récupérer des réponses d'un quizz de type radio dans une page résultats.php ?

Merci d'avance pour votre aide !
A voir également:

3 réponses

ReDLoG
 
Bonjour,
Récupérer la valeur d'un bouton radio dans un script PHP se fait de la même manière que pour un champ type texte, par $_POST ou $_GET en fonction de la méthode indiqué dans la balise <form> :
<?php
if(isset($_POST['couleur']) && $_POST['couleur'] == 'blanc') {
     echo "Bonne réponse, bravo!";
} else {
     echo "Mauvaise réponse, vous êtes nul!";
}
?>
<form method="post" action="">
Quelle est la couleur du cheval blanc d'Henri IV?<br />
<input type="radio" name="couleur" value="blanc" /> Blanc
<input type="radio" name="couleur" value="noir" /> Noir
</form>

Bien entendu, ceci s'entend pour des boutons radios qui donnent un choix unique (un seul bouton pouvant être coché), se serait différent pour récupérer la ou les valeurs de checkbox car plusieurs peuvent être cochées simultanément...
1
phpphp Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour votre aide ReDLoG !

J'avais oublié de fermer la balise input. Mais j'ai toujours un soucis, c'est que lorsque je valide le questionnaire et que je suis envoyé à une page resultats et bien celle-ci contient que des mauvaises réponses malgrè le faite que j'ai coché de bonnes réponses.

Pour résumé, j'ai 3 pages en php : la première qui est l'index, la deuxième qui est le quiz et la troisième où il y a les résultats.

Voici mon code se serait plus simple à comprendre :

Ceci est la page quiz :

<html>
<head>
<title>Quiz</title>
</head>
<body bgcolor="#FFFFFF" style="font-family:Kristen ITC"><br/>
<center>
<h2><font color="#FF3300">Quiz : culture général</font></h2><br/>

<form method="post" action="resultats.php">
<h3><font color="#660099">Question n°1 : Quel est la capital du Groenland ?</font></h3>
<h4><form><input type="radio" name="capital" value 1="Gaborone"/>Gaborone</br>
<input type="radio" name="capital" value 1="Accra"/>Accra</br>
<input type="radio" name="capital" value 1="Nuuk"/>Nuuk</form></h4></form>

<form method="post" action="resultats.php">
<h3><font color="#660099">Question n°2 : Combien de côtés a un dodécagone ?</font></h3>
<h4><form><input type="radio" name="cotes" value 2="12"/>12</br>
<input type="radio" name="cotes" value 2="8"/>8</br>
<input type="radio" name="cotes" value 2="10"/>10</form></h4></form>

<form method="post" action="resultats.php">
<h3><font color="#660099">Question n°3 : Que collectionne un chélonéphile ?</font></h3>
<h4><form><input type="radio" name="collectionneur" value 3="Des échelles"/>Des échelles</br>
<input type="radio" name="collectionneur" value 3="Des tortues"/>Des tortues</br>
<input type="radio" name="collectionneur" value 3="Des chenilles"/>Des chenilles</form></h4></form>

<form method="post" action="resultats.php">
<h3><font color="#660099">Question n°4 : Qui a chanté "Relax" ?</font></h3>
<h4><form><input type="radio" name="chanteur" value 4="Bruno Mars"/>Bruno Mars</br>
<input type="radio" name="chanteur" value 4="Prince"/>Prince</br>
<input type="radio" name="chanteur" value 4="Mika"/>Mika</form></h4></form>

<form method="post" action="resultats.php">
<h3><font color="#660099">Question n°5 : Combien existe-t-il d'océans ?</font></h3>
<h4><form><input type="radio" name="oceans" value 5="6"/>6</br>
<input type="radio" name="oceans" value 5="5"/>5</br>
<input type="radio" name="oceans" value 5="7"/>7</form></h4></form>

<form method="post" action="resultats.php">
<h3><font color="#660099">Question n°6 : Quelle ville a construit le premier métro ?</font></h3>
<h4><form><input type="radio" name="ville" value 6="A Londres"/>A Londres</br>
<input type="radio" name="ville" value 6="A Budapest"/>A Budapest</br>
<input type="radio" name="ville" value 6="A Shanghai"/>A Shanghai</form></h4></form>

<form method="post" action="resultats.php">
<h3><font color="#660099">Question n°7 : Compléter cette expression, monter sur ses grands... :</font></h3>
<h4><form><input type="radio" name="expression" value 7="Pieds"/>Pieds</br>
<input type="radio" name="expression" value 7="Sauts"/>Sauts</br>
<input type="radio" name="expression" value 7="Chevaux"/>Chevaux</form></h4></form>

<form method="post" action="resultats.php">
<h3><font color="#660099">Question n°8 : Combien de coeurs à une pieuvre ?</font></h3>
<h4><form><input type="radio" name="coeurs" value 8="3"/>3</br>
<input type="radio" name="coeurs" value 8="1"/>4</br>
<input type="radio" name="coeurs" value 8="2"/>2</form></h4></form>

<form method="post" action="resultats.php">
<h3><font color="#660099">Question n°9 : Où se trouve la cité interdite ?</font></h3>
<h4><form><input type="radio" name="pays" value 9="Au Brésil"/>Au Brésil</br>
<input type="radio" name="pays" value 9="En Chine"/>En Chine</br>
<input type="radio" name="pays" value 9="Au Japon"/>Au Japon</form></h4></form>

<form method="post" action="resultats.php">
<h3><font color="#660099">Question n°10 : Qui a dit, "Quoi de neuf docteur" ?</font></h3>
<h4><form><input type="radio" name="citation" value 10="Scoubidou"/>Scoubidou</br>
<input type="radio" name="citation" value 10="Mickey Mouse"/>Mickey Mouse</br>
<input type="radio" name="citation" value 10="Buggs Bunny"/>Buggs Bunny</form></h4></form>

<?php
echo "<body background=pic5.jpg>";
?>

<a href="resultats.php"><input type="image" name="valider" value="ok" img src="pic3.jpg"/></a>
<embed src="sound2.mp3" autostart="true" loop="false" hidden="true"></embed>
</center>
</body>
</html>

Ceci est la page resultats :

<html>
<head>
<title>Quiz</title>
</head>
<body BGCOLOR="#660099" STYLE="font-family:Kristen ITC">
<center><br/>
<h2><font color="#FFFFFF">Voici la correction du quiz ainsi que votre score :</font></h2><br/>
<?php
if(isset($_POST["capital"]) && $_POST["capital"] == "Nuuk")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était Nuuk !";
}

if (isset($_POST["cotes"]) && $_POST["cotes"] == "12")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était 12 !";
}

if(isset($_POST["collectionneur"]) && $_POST["collectionneur"] == "Des tortues")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était des tortues !";
}

if (isset($_POST["chanteur"]) && $_POST["chanteur"] == "Mika")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était Mika !";
}

if(isset($_POST["oceans"]) && $_POST["oceans"] == "5")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était 5 !";
}

if (isset($_POST["ville"]) && $_POST["ville"] == "A Londres")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était Londres !";
}

if(isset($_POST["expression"]) && $_POST["expression"] == "Chevaux")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était chevaux !";
}

if (isset($_POST["coeurs"]) && $_POST["coeurs"] == "3")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était 3 !";
}

if(isset($_POST["pays"]) && $_POST["pays"] == "En Chine")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était la Chine !";
}

if (isset($_POST["citation"]) && $_POST["citation"] == "Buggs Bunny")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était Buggs Bunny !";
}
?>
</center>
</body>
</html>
0
ReDLoG
 
Ceci n'est pas la bonne syntaxe d'un input :
<h4><form><input type="radio" name="capital" value 1="Gaborone"/>Gaborone</br>  
<input type="radio" name="capital" value 1="Accra"/>Accra</br>  
<input type="radio" name="capital" value 1="Nuuk"/>Nuuk</form></h4></form> 

Voici la bonne :
<h4> 
     <input type="radio" name="capital" value="Gaborone" />Gaborone<br />  
     <input type="radio" name="capital" value="Accra" />Accra<br />  
     <input type="radio" name="capital" value="Nuuk" />Nuuk 
</h4>

Vois-tu la différence...?

D'autre part, je ne comprends pas pourquoi chaque série de questions est englobée dans un formulaire (et qui englobe lui-même un autre formulaire) qui à chaque fois pointe sur le fichier resultats.php? Quelle est l'utilité (néfaste et contraire à la sémantique HTML) de cette manière de structurer ton quizz?

P.S. : h4 est une balise de titre et donc son utilisation est plutôt destiné à cet usage. Si tu veux séparer les différentes séries de question en groupe, utilise une balise <div> ou une balise <p> complété par du CSS.
0
phpphp Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour la rectification !
Pour le formulaire qui englobe un autre formulaire c'est une erreur de ma part. Je ne pensais pas que c'était pas bon étant donné que je suis novice en php et html.

J'ai réctifié mon code mais j'ai toujours le même problème. Lorsque je valide le questionnaire et que je suis envoyé à une page resultats et bien celle-ci contient que des mauvaises réponses malgrè le faite que j'ai coché de bonnes réponses.

Comment remedié à ce problème-là ?
0
ReDLoG
 
Et je dois deviner comment est écrit le code du fichier resultats.php? Ben faudra faire sans moi alors...
0
phpphp Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
La page "résultats a été posté elle se trouve dans mon deuxième message.

Je vous la remet ici :

<html>
<head>
<title>Quiz</title>
</head>
<body BGCOLOR="#660099" STYLE="font-family:Kristen ITC">
<center><br/>
<h2><font color="#FFFFFF">Voici la correction du quiz ainsi que votre score :</font></h2><br/>
<?php
if(isset($_POST["capital"]) && $_POST["capital"] == "Nuuk")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était Nuuk !";
}

if (isset($_POST["cotes"]) && $_POST["cotes"] == "12")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était 12 !";
}

if(isset($_POST["collectionneur"]) && $_POST["collectionneur"] == "Des tortues")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était des tortues !";
}

if (isset($_POST["chanteur"]) && $_POST["chanteur"] == "Mika")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était Mika !";
}

if(isset($_POST["oceans"]) && $_POST["oceans"] == "5")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était 5 !";
}

if (isset($_POST["ville"]) && $_POST["ville"] == "A Londres")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était Londres !";
}

if(isset($_POST["expression"]) && $_POST["expression"] == "Chevaux")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était chevaux !";
}

if (isset($_POST["coeurs"]) && $_POST["coeurs"] == "3")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était 3 !";
}

if(isset($_POST["pays"]) && $_POST["pays"] == "En Chine")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était la Chine !";
}

if (isset($_POST["citation"]) && $_POST["citation"] == "Buggs Bunny")
{
echo "Bonne réponse, bravo !";
}
else
{
echo "Mauvaise réponse, la bonne réponse était Buggs Bunny !";
}
?>
</center>
</body>
</html>
0
ReDLoG
 
Le problème ne se situe pas dans le fichier resultats.php mais dans le lien que tu as mis pour soumettre le formulaire. Il ne faut pas utiliser la balise <a> mais un vrai bouton de soumission de formulaire comme ceci par exemple :
<input type="submit" name="quizz" value="Jouer" />

Tu peux paramétrer à ta convenance l'apparence du bouton via les styles CSS
0
phpphp Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup !
Problème résolu.
0