Enrigistrer une variable avec un bouton

Fermé
stuprmaatie - 9 juil. 2019 à 08:52
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 9 juil. 2019 à 12:07
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
9 juil. 2019 à 10:40
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
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
9 juil. 2019 à 12:07
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