<< |
SCRIPT POUR QCM (avec générateur ver.1) |
LE FORMULAIRE : |
Ce formulaire est composé d'un ensemble de boutons à options. Ils sont distribués en 10 groupes de 4.
Dans ce cas précis, le nom du formulaire est quest, le nom de chacun des 10 groupes est 1 ... 10, le nom de chaque bouton de chaque groupe est soit a, b, c, ou d.
Par exemple, la balise du premier bouton du groupe 1 (question 1) est :
<input type="radio" name="1" value="a" onclick="Engine(1, this.value)">
la balise du troisième bouton du groupe 4 est :
<input type="radio" name="4" value="c" onclick="Engine(4, this.value)">
La dernière partie de la balise appelle la fonction Engine (décrite plus loin) pour l'évènement onclick (clic gauche de la souris). Les variables prennent alors de nouvelles valeurs...
LE SCRIPT : |
passage
à ne pas modifier (si débutant) passage personnalisable |
<script language="JavaScript"><!--// hide
/* Copyright (c) */
// Declaration des variables :
var rep = new Array; var faite = new Array; var score = 0;
// rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
// valeurs a modifier (a b c ou d) en fonction des reponses a cocher :
rep[1] = "a"; rep[2] = "a"; rep[3] = "a"; rep[4] = "a"; rep[5] = "a"; rep[6] = "a"; rep[7] = "a"; rep[8] = "a"; rep[9] = "a"; rep[10] = "a";
// rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
// fonction qui reagit aux reponses et incremente le score : // (teste aussi si on a deja repondu...)
function Engine(question, reponse) {
if (reponse != rep[question]) { // si faux
if (!faite[question]) { // si pas deja repondu faite[question] = -1; alert("Faux! Ton score est de : " + score + " La bonne réponse était en -" + rep[question] + "-"); }
else { // si deja repondu alert("Tu as déjà répondu à cette question !"); }
}
else { // si juste
if (!faite[question]) { // si pas deja repondu faite[question] = -1; score++; // incremente alert("Bien! Ton score est de : " + score); }
else { // si deja repondu alert("Tu as déjà répondu à cette question !"); }
}
} // fin de la fonction qui teste les reponses...
// fonction qui affiche le score final (resultat) :
function NextLevel () {
if (score >= 11) { alert("Tricheur !"); }
// peuvent etre modifies les commentaires lies aux resultats // (attention, certains caracteres sont interdits comme " ou ')
if (score > 9 && score < 11) { alert(score + "/10 " + "Un coup de chance !... peut-être."); }
if (score > 8 && score <= 9) { alert(score + "/10 " + "Bien, mais... pas parfait."); }
if (score >= 5 && score <= 8) { alert(score + "/10 " + "Pas mal, on a vu mieux que cela cependant..."); }
if (score >= 1 && score < 5) { alert(score + "/10 " + "Pas terrible... un autre essai ?"); }
if (score < 1) { alert(score + "/10 " + "Un autre essai ?"); }
// ======================================================
// ligne qui suit pour vider le formulaire :
faite = new Array; score = 0;
// ligne a activer si navigateur recent (sup a IE3 par ex) // le symbole // desactive la ligne
// document.quest.reset();
} // fin de la fonction qui affiche le resultat final
// --></script>