Enrigistrer une variable avec un bouton
stuprmaatie
-
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, j'aimerai pouvoir répondre à mon QCM en 2 étapes, un première ou je clic sur une des 4 réponses disponible (réponse qui serra enregistrée au clic) Et ensuite j'aimerai à l'aide d'un bouton "valider" pouvoir comparer la réponse cliquer au début et la bonne réponse pour calculer le scores en fonction de celle-ci.
Mes 4 réponses et ma fonction valider:
ma fonction valider:
si quelqu'un à une idée par ou commencer je suis preneur ! merci à vous
Mes 4 réponses et ma fonction valider:
<div class="colonne" id="liste">
<button class="calque_rep" id="rep1" onClick="desactive_bouton(); questionRecup(1)"> </button>
<button class="calque_rep" id="rep2" onClick="desactive_bouton(); questionRecup(2)"> </button>
<button class="calque_rep" id="rep3" onClick="desactive_bouton(); questionRecup(3)"> </button>
<button class="calque_rep" id="rep4" onClick="desactive_bouton(); questionRecup(4)"> </button>
1
2
<input type="button" id='valider' value="Valider la réponse" style="margin-left:10px;" onClick="valider(); clicId" />
</div>
ma fonction valider:
function valider(){
if(jouer==false)
return;
if(num_rep != bonne_rep)
nb_erreurs++;
nb_questions--;
if(nb_questions==0)
jouer=false;
init();
}
si quelqu'un à une idée par ou commencer je suis preneur ! merci à vous
Configuration: Windows / Chrome 75.0.3770.100
2 réponses
-
Bonjour,
Si tu veux la mémoriser le temps que tu es sur la page, tu peux stocker la donnée dans une variable "globale".
Voir ici un cours sur la porté des variables : https://www.pierre-giraud.com/javascript-apprendre-coder-cours/portee-variable-return-fonction/
Tu pourrais, si tu as plusieurs questions dans ta page, utiliser un array
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array
https://openclassrooms.com/fr/courses/146276-tout-sur-le-javascript/144693-l-objet-array
Avec la méthode PUSH tu peux facilement ajouter des éléments à ton array
https://www.w3schools.com/jsref/jsref_push.asp
Et voici comment parcourir un array en JS :
https://www.xul.fr/ecmascript/array-for-each.php
Tu pourrais aussi t'interesser au format JSON
https://developer.mozilla.org/fr/docs/Learn/JavaScript/Objects/JSON
Voila de quoi commencer.....
Reviens nous voir avec ton code si tu rencontres des soucis...
-
j'y suis presque ! le seul soucis pour le moment c'est que ma réponse est vue comme juste partout..
voici ce que j'ai faisvar chaine_question = questions(numero); var tab_question = chaine_question.split('*'); var bonneReponse = "rep" + tab_question[5]; var reponseSelectionnee = "rep0"; for (i = 0; i < 4; i++) { document.getElementById("liste").getElementsByTagName("button") [i].addEventListener("click", function(){ var liste = document.getElementById("liste").getElementsByTagName("button"); for(j = 0; j < 4; j++){ liste[j].className = "calque_rep"; } this.className = "actif"; reponseSelectionnee = this.id; }); }
ma fonction validerfunction valider(){ if(jouer==false) return; if(reponseSelectionnee != bonneReponse) nb_erreurs++; nb_questions--; if(nb_questions==0) jouer=false; init(); }
et je dois enfaite aller récupérer la bonne réponse à la dernière place de mon tableau, une idée ? voici mes questions -->
function questions(numero) { switch(numero) { //rougegorge case 1: chaine="Quel est cet oiseau ?*pivert*rougegorge*pigeon*coco*2"; playSound("chant/bruit.wav"); break; //merle case 2: chaine="Quel est cet oiseau ?*peruche*coco*merle*chat*3"; playSound("chant/bruit2.wav"); break; //moineau case 3: chaine="Quel est cet oiseau ?*Moineau*coco*merle*chat*1"; playSound("chant/bruit3.wav"); break; } return chaine; }-
Commence par écrire tes IF / ELSE complètement ( avec les accolades )
Cela évite de très nombreuses erreurs....
if (condition ){ }
if / else ..if (condition ){ }else{ }
ça permettra de voir correctement où, selon toi, commence les conditions et où elles se terminent...
N'hésites pas non plus à utiliser des CONSOLE.LOG pour afficher le contenu de tes différentes variables dans ton code histoire d'essayer de déterminer où se situe le souci. ( le résultat s'affichant dans la console JS de ton navigateur )
-