IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Calculer et afficher le résultat d'un questionnaire


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    avril 2004
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : avril 2004
    Messages : 72
    Points : 41
    Points
    41
    Par défaut Calculer et afficher le résultat d'un questionnaire
    yop yop

    J'vais essayer d'être clair :
    J'ai créé un questionnaire (10 questions) html avec des boutond de type=radio, chaque question a 3modalités (a, b, c) et les valeurs respectives sont (0 pour a, 1 pour b et 2 pour c).

    L'utilisateur ne peut cocher qu'une seule case.

    Je voudrais obtenir le score une fois le questionnaire rempli, en gros c est comme les tests des magasines !!!!

    Voilà un extrait de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <script language="JavaScript">
    function getScore&#40;form&#41; &#123;
    ...???...
    &#125;
    </script>
     
    <form>
    Question 1
    <input name="Q1-f" value="a" type="radio">
    A. reponse A ...<br />
     
    <input name="Q1-f" value="b" type="radio">
    B.  reponse B ...<br />
     
    <input name="Q1-f" value="c" type="radio">
    C. reponse C ...<br />
     
    <br />
     
    Question 2
    <input name="Q2-f" value="a" type="radio">
    A. reponse A ...<br />
     
    <input name="Q2-f" value="b" type="radio">
    B.  reponse B ...<br />
     
    <input name="Q2-f" value="c" type="radio">
    C. reponse C ...<br />
     
    <br />
    ...
    <br />
    <input value="Score" onclick="getScore&#40;this.form&#41;" type="submit"><br />
    Votre score est &#58;  ...???...
    </form>
    Mes 2 problèmes sont :
    ...???... 1 - Créer la fonction qui va prendre en parametre le formulaire et calculer le résultat.

    ...???... 2 - Afficher le résultat.


    Merkiii à ceux qui pourront m'aider




    Lipao

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 11 672
    Points : 20 440
    Points
    20 440
    Par défaut
    TU veux afficher le résultat sur la même page?
    Dans un input text ?
    Ou envoyer tout ca vers une autre page (type=submit)

  3. #3
    Membre du Club
    Inscrit en
    avril 2004
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : avril 2004
    Messages : 72
    Points : 41
    Points
    41
    Par défaut
    dans la même page si c'est possible

    mais envoyer un lien vers une autre page avec le score ça me va aussi !

    (si tu me dis comment recupérer la valeur )

    merkiiiiii de ton aide

    ++

  4. #4
    Membre du Club
    Inscrit en
    avril 2004
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : avril 2004
    Messages : 72
    Points : 41
    Points
    41
    Par défaut
    J'ai commencé à faire une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    function getScore&#40;form&#41; &#123;
      var score = 0;
      var nbQues = 10;
      var nbChoi = 3;
     
      var currElt;
     
      for &#40;i=0; i<nbQues; i++&#41;&#123;
          for &#40;j=0; j<nbChoi; j++&#41; &#123;
            currElt = form.elements&#91;i + j&#93;;
               if &#40;currElt.checked&#41;&#123;
    		score = score + j+1;
    	  &#125;
          &#125;
      &#125;
    form.score.value = score;
    alert&#40;"le score est &#58; "+score&#41;;
    &#125;
    mais ça ne marche pas comme je voudrais !

    Quelqu'un saurait me dire pkoi ??


    merkiii d'avance

    Lipao

  5. #5
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 11 672
    Points : 20 440
    Points
    20 440
    Par défaut
    Ce serait bien que tu détailles un peu pour au moins qu'on sache ce que tu veux calculer et comment ?
    Ensuite pour afficher sur la meme page tu pourrais utiliser un input de type text en retirant les bordures. ou tu pourrais le faire sur un autre page ou meme sur une fenetre de style popup mais pour ca il faudrait commencer par détailler le calcul, si tu veux bien

  6. #6
    Membre du Club
    Inscrit en
    avril 2004
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : avril 2004
    Messages : 72
    Points : 41
    Points
    41
    Par défaut
    Le calcul est très simple :
    Pour chaque question il y a 3 possibilités :
    A
    B
    C

    A vaut 1 point
    B vaut 2 points
    C vaut 3 points


    mon but est donc de savoir pour chacune des questions quelle est la case qui est coché, et d'ajouter les points qui correspondent. L'algo de la fonction donnerait :

    score <- 0
    Pour chaque question Faire
    • Si a est coché Faire
      [list:b0c6096a0f] score <- score + 1
    FinSi[/list:u:b0c6096a0f]
    • Si b est coché Faire
      [list:b0c6096a0f] score <- score + 2
    FinSi[/list:u:b0c6096a0f]
    • Si c est coché Faire
      [list:b0c6096a0f] score <- score + 3
    FinSi[/list:u:b0c6096a0f]FinPour

    Voilà, seulement je ne connais pas trop JavaScript et je ne sais pas comment savoir quelle est la case qui est coché ?
    Je ne sais pas non plus comment affiché le resultat obtenu ?
    Peut importe que ce soit dans la même page ou dans une nouvelle.

    Merkiiii de ton aide

    Lipao

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2002
    Messages : 1 060
    Points : 1 335
    Points
    1 335
    Par défaut
    Bonjour,

    Tu peux faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    <html> 
      <head>
        <script type="text/javascript"> 
          function getScore&#40;formulaire&#41; 
          &#123;
            var score = 0;
            var question = document.getElementsByTagName&#40;'FIELDSET'&#41;;
            var nbQuestion = question.length;
            var i = 0;
            while&#40;i < nbQuestion&#41;
            &#123;        
              var option = question&#91;i&#93;.getElementsByTagName&#40;'INPUT'&#41;;
              var nbOption = option.length;
              var j = 0;
              while &#40;j < nbOption&#41;
              &#123;
                if&#40;&#40;option&#91;j&#93;.type == 'radio'&#41; && &#40;option&#91;j&#93;.checked&#41;&#41;
                  score += parseInt&#40;option&#91;j&#93;.value, 10&#41;;
                j ++;
              &#125;          
              i ++ ;
            &#125;
            document.getElementById&#40;'score'&#41;.innerHTML = score;
          &#125; 
        </script> 
      </head> 
      <body>
        <form name="question">
          <fieldset id="Q1">
            <legend><b>Question 1</b></legend>
            <br> 
            <input name="Q1-f" value="1" type="radio"> 
            A. reponse A ...<br /> 
     
            <input name="Q1-f" value="2" type="radio"> 
            B.  reponse B ...<br /> 
     
            <input name="Q1-f" value="3" type="radio"> 
            C. reponse C ...
            <br /><br /> 
          </fieldset>
          <br /> 
          <fieldset id="Q2">
            <legend><b>Question 2</b></legend>
            <br> 
            <input name="Q2-f" value="1" type="radio"> 
            A. reponse A ...<br /> 
     
            <input name="Q2-f" value="2" type="radio"> 
            B.  reponse B ...<br /> 
     
            <input name="Q2-f" value="3" type="radio"> 
            C. reponse C ...
            <br /><br /> 
          </fieldset>
          <br /><br /> 
          <input value="Score" onclick="getScore&#40;this.form&#41;" type="button">
          <br /> 
          <br /> 
          Votre score est &#58; <span id="score"></span>
        </form> 
      </body> 
    </html>
    La balise "fieldset" peut être remplacée par "div". Dans ce cas, il faut faire le même changement dans la fonction js.

  8. #8
    Membre du Club
    Inscrit en
    avril 2004
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : avril 2004
    Messages : 72
    Points : 41
    Points
    41
    Par défaut


    Merkiiiiiiii beaucoup jeca c'est exactement ce qu'il me fallait !!




    Lipao

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    février 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : février 2020
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    parfait moi même j'ai le même soucis mais le mien c'est d'afficher le score dans une boîte de dialogue

  10. #10
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    5 980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 5 980
    Points : 16 212
    Points
    16 212
    Par défaut
    Salut

    15 ans presque jour pour jour, je doute que les participants de cette discussion soient encor actifs, de plus la technique des langages a bien changé.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher un résultat de calcul avec setText
    Par Félinx dans le forum Débuter
    Réponses: 6
    Dernier message: 08/10/2014, 19h27
  2. Afficher le résultat d'un calcul
    Par novice100 dans le forum Langage
    Réponses: 6
    Dernier message: 02/10/2011, 10h32
  3. Afficher le résultat d'un calcul
    Par vminos dans le forum Langage
    Réponses: 4
    Dernier message: 13/08/2009, 13h47
  4. Réponses: 8
    Dernier message: 27/12/2007, 12h55
  5. Problème pour afficher le résultat d'un calcul
    Par goomazio dans le forum Assembleur
    Réponses: 3
    Dernier message: 26/01/2006, 10h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo