Quiz en PHP

Fredy07
Invité n'ayant pas de compte PHPfrance

14 sept. 2009, 03:29

Bonjour,

Je suis entrain de creer un quiz, avec une selection d'une seule reponse, le code ci-dessous rencontre un probleme au niveau des radios, par exemple:

+ Question1:
++Reponse1
++Reponse2
++Reponse3

+ Question2:
++Reponse1
++Reponse2
++Reponse3

Pour reponse1 de question1 et reponse1 de question2, ainsi de suite, ils ont le meme nom du bouton radio:
<?php
echo $question.'<br>';
echo '<input type="radio" name="answer1" value="1"> '.$answer1.'<br>';
echo '<input type="radio" name="answer2" value="2"> '.$answer2.'<br>';
echo '<input type="radio" name="answer3" value="3"> '.$answer3.'<br>';
?>
Si je selectionne reponse1 de la question1 et apres je selectionne reponse1 de la question2, la reponse1 de la question1 se deselectionne, ce qui est normal, le meme nom, alors comment puis je eviter ce probleme??

Merci

Invité
Invité n'ayant pas de compte PHPfrance

14 sept. 2009, 03:51

Bonjour :)

La valeur de l''attribut "name" d'un groupe des "input" de type "radio" doit être le même pour que le choix s'opère entre eux, deux groupes différents doivent avoir des valeurs "name" différents :
<?php
echo $question1.'<br>';
echo '<input type="radio" name="question1" value="1"> '.$question1_answer1.'<br>';
echo '<input type="radio" name="question1" value="2"> '.$question1_answer2.'<br>';
echo '<input type="radio" name="question1" value="3"> '.$question1_answer3.'<br>';

echo $question2.'<br>';
echo '<input type="radio" name="question2" value="1"> '.$question2_answer1.'<br>';
echo '<input type="radio" name="question2" value="2"> '.$question2_answer2.'<br>';
echo '<input type="radio" name="question2" value="3"> '.$question2_answer3.'<br>';

// etc.
?>
;)

Fredy07
Invité n'ayant pas de compte PHPfrance

14 sept. 2009, 08:00

Bonjour :)

La valeur de l''attribut "name" d'un groupe des "input" de type "radio" doit être le même pour que le choix s'opère entre eux, deux groupes différents doivent avoir des valeurs "name" différents :
<?php
echo $question1.'<br>';
echo '<input type="radio" name="question1" value="1"> '.$question1_answer1.'<br>';
echo '<input type="radio" name="question1" value="2"> '.$question1_answer2.'<br>';
echo '<input type="radio" name="question1" value="3"> '.$question1_answer3.'<br>';

echo $question2.'<br>';
echo '<input type="radio" name="question2" value="1"> '.$question2_answer1.'<br>';
echo '<input type="radio" name="question2" value="2"> '.$question2_answer2.'<br>';
echo '<input type="radio" name="question2" value="3"> '.$question2_answer3.'<br>';

// etc.
?>
;)
Mais dans ce cas, je ne savais pas quelle question vas venir:
$select_com = "SELECT * from quiz_questions ORDER BY RAND() DESC LIMIT 10";

Mammouth du PHP | 686 Messages

14 sept. 2009, 11:18

Mais dans ce cas, je ne savais pas quelle question vas venir:
$select_com = "SELECT * from quiz_questions ORDER BY RAND() DESC LIMIT 10";
Tu créé une boucle qui débute à zero pour la question, lorsque tu as toutes les reponses tu lui incremente 1
$i = 0;
/// Tu fais ta requete sql
/// Tu cherche le nombre de questions que tu as --> $nb = mysql_num_rows($sql)
/// Tu récupère les réponses dans ta boucle 
while($result=mysql_fetch_array($sql)){
while ($i<=$nb){
echo $i.'<br>';
echo '<input type="radio" name="'.$i.'" value="1"> '.$question1_answer1.'<br>';
echo '<input type="radio" name="'.$i.'" value="2"> '.$question1_answer2.'<br>';
echo '<input type="radio" name="'.$i.'" value="3"> '.$question1_answer3.'<br>';
$i == $i+1;
}
}
ca te donne une idée de ce qu'il faut faire

Fredy07
Invité n'ayant pas de compte PHPfrance

15 sept. 2009, 08:50

Merci pour les reponses, je vais travailler sur, et si des defis, je reviendrais.