par
dix2 » 16 juin 2012, 13:13
salut,
c'est un sujet qui a été débattu pas mal de fois sur les forums
tu peux donc trouver pas mal de scripts sur le net
Techniquement, voici les grandes lignes (c'est une solution parmi plusieurs) :
- 4 pages en tout (presentation.php, question.php, reponseAjax.php et resultat.php)
- prensentation.php : page simple qui présente le quiz avec un lien vers la page question.php
- question.php : la page principale où il y aura une question affichée
- reponseAjax.php : cette page répondra à une requête Ajax envoyée depuis la page question.php (réponse sera au format XML)
- resultat.php : affiche le résultat final à la fin du quiz
Revenons sur la page question.php :
quand tu arrives sur cette page, tu dois avoir dans ta variable superglobale $_POST le numéro de la question à afficher : $_POST['numQuestion']
dans ta page, tu affiches la question avec les différentes réponses
en dessous, il y a un bouton "Réponse" qui envoie une requête Ajax vers la page reponseAjax.php avec comme données envoyées le numéro de la question et la réponse cochée
Le serveur réceptionne cette requête et renvoie une réponse XML du style (dans le cas où la réponse du candidat est fausse) :
<reponse>
<resultat>NOK</resultat>
<justification>la justification de la réponse</justification>
</reponse>
si la réponse du candidat avait été correcte, à la place de NOK, on aurait eu OK
si il y a des caractères accentués dans la justification comme c'est le cas dans mon exemple, dans l'en-tête XML, il faudra préciser que le jeu de caractères employé est le iso-8859-1 (l'envoi de la requête Ajax se fait, par contre, toujours en UTF-8)
Lorsque le navigateur reçoit la réponse du serveur, il analyse en javascript le flux xml et modifie la page en conséquence (si le candidat n'a pas correctement répondu, mettre un fond rouge sur la réponse cochée et afficher en dessous la justification)
Dans la page question.php, il y a également un bouton "Question suivante" qui est un lien vers la même page où le $_POST['numQuestion'] a été incrémenté de 1
Au début de la page "question.php", il y a un bout de code pour stocker la réponse du candidat dans la base de donnée
Voici les grandes lignes
Bon courage,
dix2
salut,
c'est un sujet qui a été débattu pas mal de fois sur les forums
tu peux donc trouver pas mal de scripts sur le net
Techniquement, voici les grandes lignes (c'est une solution parmi plusieurs) :
- 4 pages en tout (presentation.php, question.php, reponseAjax.php et resultat.php)
- prensentation.php : page simple qui présente le quiz avec un lien vers la page question.php
- question.php : la page principale où il y aura une question affichée
- reponseAjax.php : cette page répondra à une requête Ajax envoyée depuis la page question.php (réponse sera au format XML)
- resultat.php : affiche le résultat final à la fin du quiz
Revenons sur la page question.php :
quand tu arrives sur cette page, tu dois avoir dans ta variable superglobale $_POST le numéro de la question à afficher : $_POST['numQuestion']
dans ta page, tu affiches la question avec les différentes réponses
en dessous, il y a un bouton "Réponse" qui envoie une requête Ajax vers la page reponseAjax.php avec comme données envoyées le numéro de la question et la réponse cochée
Le serveur réceptionne cette requête et renvoie une réponse XML du style (dans le cas où la réponse du candidat est fausse) :
<reponse>
<resultat>NOK</resultat>
<justification>la justification de la réponse</justification>
</reponse>
si la réponse du candidat avait été correcte, à la place de NOK, on aurait eu OK
si il y a des caractères accentués dans la justification comme c'est le cas dans mon exemple, dans l'en-tête XML, il faudra préciser que le jeu de caractères employé est le iso-8859-1 (l'envoi de la requête Ajax se fait, par contre, toujours en UTF-8)
Lorsque le navigateur reçoit la réponse du serveur, il analyse en javascript le flux xml et modifie la page en conséquence (si le candidat n'a pas correctement répondu, mettre un fond rouge sur la réponse cochée et afficher en dessous la justification)
Dans la page question.php, il y a également un bouton "Question suivante" qui est un lien vers la même page où le $_POST['numQuestion'] a été incrémenté de 1
Au début de la page "question.php", il y a un bout de code pour stocker la réponse du candidat dans la base de donnée
Voici les grandes lignes
Bon courage,
dix2