Enrigistrer une variable avec un bouton

stuprmaatie -  
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:

<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

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