The_Art_of_War
Messages postés107Date d'inscriptionsamedi 15 novembre 2014StatutMembreDernière intervention15 septembre 2021
-
Modifié par The_Art_of_War le 22/10/2016 à 18:50
The_Art_of_War
Messages postés107Date d'inscriptionsamedi 15 novembre 2014StatutMembreDernière intervention15 septembre 2021
-
22 oct. 2016 à 19:08
Bonjour,
Je doit faire un QCM à trois questions.
Il y a plusieurs choix possibles, mais pour avoir le point il faux avoir aucune réponse fausse.
Cependant, il semblerait que ma deuxième question donne 2 points et ma troisième question n'en donne aucun.
Chaque question (ensemble des 3 réponses par question) si répondu correctement doit donner 1 point.
Voici le code (je met pas l'image de fond puisque ça ne change rien au fonctionnement):
(collez le sur Notepad++ pour une meilleur lisibilité)
En-dessous je remet le code commenté pour que vous ayez le choix. (collez le sur Notepad++ pour une meilleur lisibilité)
Spoiler
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>QCM</title>
<script language="JavaScript">
var Q1=0;
var Q2=0;
var Q3=0;
function test(nom,n)
{
var rep=true;
for (i=0; i<n; i++)
{
if (nom[i].value==1 && nom[i].checked==false) rep=false;
if (nom[i].value==0 && nom[i].checked==true) rep=false;
}
return rep;
}
function score1() {document.QCM.resultat.value=Q1+Q2+Q2}
</script>
</head>
<body BACKGROUND="background.jpg">
<h1>Questions à Choix Multiples (QCM)</h1>
<form name="QCM">
Il y a une ou plusieurs réponses justes à chaques questions.
<br>
Pour avoir juste à la question il faut avoir toutes les réponses correctes et aucune fausse.
<br>
<br>
<b><u>Que vaut i² ?</u></b>
<br>
<input type="checkbox" name="Question1" value=0>i²=i</input>
<br>
<input type="checkbox" name="Question1" value=1>i²=-1</input>
<br>
<input type="checkbox" name="Question1" value=0>i²=14</input>
<br>
<br>
<b><u>Que signifie 42 ?</u></b>
<br>
<input type="checkbox" name="Question2" value=1>Ce nombre est la réponse à la question ultime du sens de la vie</input>
<br>
<input type="checkbox" name="Question2" value=0>42=Pomme de terre</input>
<br>
<input type="checkbox" name="Question2" value=1>C'est un nombre</input>
<br>
<br>
<b><u>1+1= ?</u></b>
<br>
<input type="checkbox" name="Question3" value=1>1+1=2</input>
<br>
<input type="checkbox" name="Question3" value=1>1+1>=1</input>
<br>
<input type="checkbox" name="Question3" value=1>1+1<3</input>
<br>
<br>
<input type="button" name="Bouton" value="Vérifier"
OnClick="if (test(Question1,3))
{
Q1=1;
} else
{
Q1=0;
}
if (test(Question2,3))
{
Q2=1;
} else
{
Q2=0;
}
if (test(Question3,3))
{
Q3=1;
} else
{
Q3=0;
}
Number(Q1);
Number(Q2);
Number(Q3);
score1();
"></input>
<br>
<br>
Votre score est :
<input type="text" name="resultat" size="1" value="?"></input>
/3
</form>
<br>
</body>
</html>
Code commenté : Spoiler
<!DOCTYPE html> <!-- Indique qu'il s'agit bien d'une page web HTML -->
<html>
<head>
<meta charset="UTF-8"/> <!-- Cette balise indique l'encodage utilisé. Cette méthode d'encodage permet d'afficher sans aucun problème pratiquement tous les symboles de toutes les langues -->
<title>QCM</title> <!-- Titre affiché sur la barre de l'onglet -->
<script language="JavaScript"> <!-- On indique que l'on a ici du code en JavaScript -->
var Q1=0;
var Q2=0; <!-- Ces 3 variables stockerons le score de la question, 0 étant faux et 1 correcte -->
var Q3=0;
function test(nom,n) <!-- Fonction de test des réponses, le "nom" seras la "name" du group de questions à tester et le "n" seras le nombre de réponses possibles de la question, ici toujours 3 -->
{
var rep=true; <!-- On déclare la variable comme true par défaut, c'est le principe de Présomption d'innocence, tant que la réponse n'est pas définis comme fausse, alors on a bon -->
for (i=0; i<n; i++) <!-- Ce pour feras le tour des réponses possibles -->
{
if (nom[i].value==1 && nom[i].checked==false) rep=false; <!-- Si la case (checkbox) i est correcte (value==1) mais que celle-ci n'est pas cochée alors la variable rep prend la valeur false -->
if (nom[i].value==0 && nom[i].checked==true) rep=false; <!-- Si la case (checkbox) i est fausse (value==0) mais que celle-ci est cochée alors la variable rep prend la valeur false -->
}
return rep; <!-- On retourne la variable rep qui nous permettras de savoir si on a eu faux ou corecte à la question -->
}
function score1() {document.QCM.resultat.value=Q1+Q2+Q2} <!-- Fonction qui afficheras la somme de Q1, Q2 et Q3 dans la boite de texte nommée "resultat" située dans notre formulaire nommé "QCM" de notre document -->
</script>
</head>
<body BACKGROUND="background.jpg"> <!-- Image de fond choisis avec l'attribut "background" -->
<h1>Questions à Choix Multiples (QCM)</h1>
<form name="QCM"> <!-- Début du formulaire de questions -->
Il y a une ou plusieurs réponses justes à chaques questions.
<br>
Pour avoir juste à la question il faut avoir toutes les réponses correctes et aucune fausse.
<br>
<br>
<b><u>Que vaut i² ?</u></b>
<br>
<input type="checkbox" name="Question1" value=0>i²=i</input> <!-- Ces 3 cases on le même nom pour indiquer qu'elles appartiennent aux même groupe -->
<br>
<input type="checkbox" name="Question1" value=1>i²=-1</input> <!-- L'attribut "value" vas nous servir pour pouvoir détecter si la case est correcte ou fausse, "1" étant correcte et "0" étant faux -->
<br>
<input type="checkbox" name="Question1" value=0>i²=14</input>
<br>
<br>
<b><u>Que signifie 42 ?</u></b>
<br>
<input type="checkbox" name="Question2" value=1>Ce nombre est la réponse à la question ultime du sens de la vie</input> <!-- Ces 3 cases on le même nom pour indiquer qu'elles appartiennent aux même groupe -->
<br>
<input type="checkbox" name="Question2" value=0>42=Pomme de terre</input>
<br>
<input type="checkbox" name="Question2" value=1>C'est un nombre</input>
<br>
<br>
<b><u>1+1= ?</u></b>
<br>
<input type="checkbox" name="Question3" value=1>1+1=2</input> <!-- Ces 3 cases on le même nom pour indiquer qu'elles appartiennent aux même groupe -->
<br>
<input type="checkbox" name="Question3" value=1>1+1>=1</input>
<br>
<input type="checkbox" name="Question3" value=1>1+1<3</input>
<br>
<br>
<!-- Afin de ne pas pertuber le code du OnClick ci-dessous, les commentaire sont mis au dessus et non pas à côter -->
<!-- L'attribut "OnClick" utilisé pour un bouton signifie que lorsque que l'on clicque sur le bouton, les opérations du OnClick seront exécutées -->
<!-- Ce bouton vas initialiser le début des test -->
<!-- Si la question 1 a été répondu correctement, alors if(test(Question1,3)) devient if(true), alors Q1=1 et si elle a été répondu comme fausse alors ce seras Q1=0. Même principe pour Question2 et Question3-->
<!-- Number(x) : On convertit ces trois variables en nombre afin de faire la somme des trois -->
<!-- score1() : On affiche le score -->
<input type="button" name="Bouton" value="Vérifier"
OnClick="if (test(Question1,3))
{
Q1=1;
} else
{
Q1=0;
}
if (test(Question2,3))
{
Q2=1;
} else
{
Q2=0;
}
if (test(Question3,3))
{
Q3=1;
} else
{
Q3=0;
}
Number(Q1);
Number(Q2);
Number(Q3);
score1();
"></input>
<!-- Si il y aurait eu plus que troix question, au lieu de faire le test question par question, nous aurions pu faire un "if" qui englobe le tout -->
<br>
<br>
Votre score est :
<input type="text" name="resultat" size="1" value="?"></input>
/3
</form> <!-- Fin du formulaire de questions -->
<br>
</body>
</html>
Trouvez des réponses à vos questions sur la création de sites web, le référencement et les meilleures pratiques pour gérer un site. Échangez avec d'autres webmasters passionnés pour améliorer vos compétences en ligne et optimiser vos projets de site web.