Enrigistrer une variable avec un bouton

stuprmaatie -  
jordane45 Messages postés 38486 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:

<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

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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...


0
stuprmaatie
 
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 fais
var 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 valider
function 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;
}
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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 )
0