Aide Questionnaire Php

flomul
Invité n'ayant pas de compte PHPfrance

12 févr. 2014, 15:16

Bonjour à tous

Je vous explique mon problème, j'ai pour objectif de créer un questionnaire comprenant 10 questions, ce questionnaire se pose sous la forme d'un QCM, chaque question a une ou plusieurs réponses possibles.
J'ai une base de donnés ou il y a mes questions et mes réponses, celle-ci est construite de la manière suivante :


question ( question_id, question_nom, question_type )
reponse ( reponse_id, reponse_nom, reponse_juste, #question_id )

-

*clé primaire

question_type est une variable permettant de définir le type de mon input "radio" ou "checkbox" permettant une seul ou plusieurs réponses possible parmi le choix de réponse.

reponse_juste est une "variable" booléenne prenant 0 ou 1 me permettant de définir la bonne réponse, les bonnes réponses ayant pour value 1 et les mauvaises 0.

-

Dans ma page "questionnaire", je génère mes questions et les réponses associées dans un formulaire grâce à de deux boucles imbriquées, jusqu'ici, toujours pas de problème.

J'obtient un formulaire du même type que celui-ci :

Question 1 type checkbox :
<div class="bloc_question_reponse">
 
        <p class="question">Qu'elle est la couleur du cheval blanc d'henri IV ?</p>
 
          <div class="bloc_reponse">
 
                        <div class="reponse"> <!-- Rouge -->
 
              <input type="checkbox" name="question1reponseRouge" value="0">
 
              <label for="question1reponseRouge">Rouge</label>
 
              </div>
 
                          <div class="reponse"> <!-- Blanc -->
 
              <input type="checkbox" name="question1reponseBlanc" value="1">
 
              <label for="question1reponseBlanc">Blanc</label>
 
              </div>
 
                          <div class="reponse"> <!-- Gris -->
 
              <input type="checkbox" name="question1reponseGris" value="0">
 
              <label for="question1reponseGris">Gris</label>
 
              </div>
 
                          <div class="reponse"> <!-- Bleu -->
 
              <input type="checkbox" name="question1reponseBleu" value="0">
 
              <label for="question1reponseBleu">Bleu</label>
 
              </div>
 
                      </div> <!-- fin .reponse -->
 
      </div>
Question 2 type radio :
<div class="bloc_question_reponse">
 
        <p class="question">La poussière de diamant est noir.</p>
 
          <div class="bloc_reponse">
 
                        <div class="reponse">
 
              <input type="radio" name="question2" value="1">         
 
              <label for="question2reponseVrai">Vrai</label>
 
              </div>
 
                          <div class="reponse">
 
              <input type="radio" name="question2" value="0">         
 
              <label for="question2reponseFaux">Faux</label>
 
              </div>
 
                      </div> <!-- fin .reponse -->
 
      </div>
Et maintenant voici mon problème, je n'arrive pas a récupérer mes questions et réponses sous forme de tableaux uniques.
Je m'explique, j'aimerais que pour chaque question, je puisse avoir un tableau contenant la question et les ou la réponse cochés afin que je puisse vérifier si leur value est égale a 0 ou 1 pour savoir si les réponses cochés sont justes ou fausses et ainsi par la suite pouvoir compter le nombre de bonne et mauvaises réponses afin de donner une "note" sur le questionnaire.

J'espère ne pas avoir été trop confus, j'attends vos réponses avec impatience.

Cordialement

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 févr. 2014, 22:36

salut,

si j'ai bien compris ce qu'il te faut c'est récupérer les réponses bonnes pour savoir si elles ont ou pas étaient indiquée ?

Le principe est simple il faut que tu indiques l'id de la question dans le formulaire (champs caché).
Tu passe l'id des réponses dans les champs (value des radio ou input).
quand tu valide le formulaire un simple select pour récupérer les id des réponses bonnes pour cette question.

select reponse_id from reponse where reponse_juste=1 and question_id=xxx où xxx est l'id de la question récupéré depuis le formulaire.

Ensuite tu compare avec les id qui viennent du formulaire.

si tu utilise la notation tableau pour les checkbox tu pourras boucler ou utiliser les fonctions de tableau (par exemple in_array).

@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 2278 Messages

13 févr. 2014, 12:47

Question assez fréquente, car visiblement c'est un exo fréquemment (et stupidement vu son inutilité) donné
Une recherche dans PHPfrance sur:
questionnaire qcm
(un de ces termes
donne des informations utilses
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD