<<

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>