Enrigistrer une variable avec un bouton

- - Dernière réponse : jordane45
Messages postés
26487
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 octobre 2019
- 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
Afficher la suite 

2 réponses

Messages postés
26487
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 octobre 2019
1825
0
Merci
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/cours-complet/javascript-portee.php

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...


Commenter la réponse de jordane45
0
Merci
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;
}
jordane45
Messages postés
26487
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 octobre 2019
1825 -
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 )
Commenter la réponse de stuprmaatie