Partage
  • Partager sur Facebook
  • Partager sur Twitter

javas cript et xml

calculer le score d'un qcm

    10 novembre 2016 à 0:32:59

    Bonjour,
    j'ai créé un qcm en xml avec une feuille xsl pour l'afficher et je souhaiterais avoir un code javascript pour pouvoir calculer le score abtenu aprés avoir répondu au qcm.
    J'ai aussi créé une feuille xsl pour afficher les réponses.

    Merci.

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      10 novembre 2016 à 8:40:14

      Bonjour,

      On peut t'aider, pas le faire à ta place ;)

      Et pour info, javascript, en un seul mot :)

      • Partager sur Facebook
      • Partager sur Twitter
        10 novembre 2016 à 11:59:27

        Bonjour

        toute aide sera la bienvenue.

        Mais aussi j'ai un problème pour aller vers la page de correction quand je clic sur "valider".

        voici mon code xml

        <?xml version="1.0" encoding="utf-8"?>
        <?xml-stylesheet href="qcm_projet_XSL.xsl" type="text/xsl" ?>
        <!DOCTYPE qcm SYSTEM "qcm_projet_DTD.dtd">
        <qcm id = "QUIZZ">
             <theme num_theme="1" title="VIROLOGIE ET BACTERIOLOGIE">
           <question num_question="1">
              <libelle>Parmi ces virus quel est celui qui est à ADN?</libelle>  
              <choix score="0"> virus de l'hépatite C</choix>
              <choix score="1"> virus de l'hépatite B</choix>
              <choix score="0"> virus de l'hépatite A</choix>    
           </question>
          
           <question num_question="2">
              <libelle>Parmi ces virus quel est celui qui est a ARN?</libelle>  
              <choix score="0">Parvovirus</choix>
              <choix score="0">Poxvirus</choix>
              <choix score="1">Virus de la rage</choix>    
           </question>
          
          <question num_question="3">
              <libelle>A quelle famille appartient le virus de l'hépatite A?</libelle>  
              <choix score="0">Hépatovirus</choix>
              <choix score="1">Picornavidae</choix>
              <choix score="0">Virus de l'hepatite A</choix>    
           </question>
          
           <question num_question="4">
              <libelle>En quoi est traduit le gène S de l'hepatite B?</libelle>  
              <choix score="1">En AgHBs</choix>
              <choix score="0">En AgHBc</choix>
              <choix score="0">En ADN polymerase</choix>        
           </question>
           <question num_question="5">
              <libelle>Parmi les caractéristiques suivantes quelle est celle qui correspond à celle de d'une bacterie?</libelle>  
              <choix score="0">Possède un seul type d'acide nucléique</choix>
              <choix score="1">Possède à la fois de l'ADN et de l'ARN</choix>
              <choix score="0">Possède une structure specifique</choix>    
           </question>
          
           <question num_question="6">
              <libelle>Parmi les bactéries suivantes quelle est celle qui n'est pas nocive pour l'Homme?</libelle>  
              <choix score="1">Echerichia coli</choix>
              <choix score="0">Plasmodium</choix>
              <choix score="0">Bacile de Koch</choix>    
           </question>
          
           <question num_question="7">
              <libelle>Quel est le rôle des acides teichoiques?</libelle>  
              <choix score="0">Sont des vecteurs d'allergènes</choix>
              <choix score="0">Sont des hypotenseurs</choix>
              <choix score="1">Sont antigéniques et immunogènes</choix>    
           </question>
          
           <question num_question="8">
              <libelle>Quel est le rôle de la paroie bactérienne?</libelle>  
              <choix score="0">Site d'encrage des flagelles</choix>
              <choix score="1">Base de la coloration de Gram</choix>
              <choix score="0">Siège de la respiration et de la phosphorylation</choix>    
           </question>
           </theme>
        </qcm>

        le fichier qcm_projet_XSL.xsl

        <?xml version="1.0" encoding="UTF-8"?>
        <xsl:stylesheet version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:import href="reponsetest.xsl" />
        <xsl:output method="html" encoding="UTF-8"/>
         
        <xsl:template match="qcm">
        <html>
        <SCRIPT type="text/javascript" src="score.js">
        </SCRIPT>

        <body BGCOLOR="Aqua">
        <form name="qcm" method="get" action="reponsetest.xsl" onSubmit="return vérification()"></form>
        <h1><CENTER><font color= "pink">QCM: VIROLOGIE ET BACTERIOLOGIE</font></CENTER>
        </h1>
        <br/>
        <br/>
        <xsl:apply-templates select="theme"/>
        <xsl:for-each select="theme"/>
        <table><form><tr>
        <td><input type="reset" name="annuler" value="Annuler"/></td>
        <td><input type="submit" name="valider" value="Valider"/></td>
        </tr>
        </form>
        </table>
        </body>


        </html>

        </xsl:template>


        <xsl:template match="question">
        <xsl:value-of select="libelle"/><br/>
        <xsl:apply-templates select="choix"/>
        <br/>
        <br/>
        </xsl:template>


        <xsl:template match="choix">
        <input type ="radio">
        <xsl:attribute name="name">
        <xsl:value-of select="concat('Q',count(preceding::question)+1)"/>
        </xsl:attribute>
        </input>
        <xsl:value-of select="."/>
        <br/>

        </xsl:template>

        </xsl:stylesheet>

        le fichier reponsetest.xsl

        <?xml version="1.0" encoding="ISO-8859-1" ?>
        <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="html" encoding="UTF-8" />
        <xsl:param name="choix" />
        <xsl:template match="qcm">

         <html>
          <head>
        <title>..:: QWIZZZ !! ::..</title>
        <script langage="javascript" src="score.js" />
          </head>
          <body>
           <table width="100%">
            <tr>
             <td align="center" bgcolor="#CCCCFF">
        <font size="+2"><i> (correction)</i></font>
         </td>
            </tr>
        </table>
          <!-- appel du template Theme -->
         
           <xsl:call-template name="theme">
            <xsl:with-param name="choix" select="$choix" />
            <xsl:with-param name="num_theme" select="1" />
            <xsl:with-param name="score" select="0" />
        </xsl:call-template>
         </body>
        </html>
        </xsl:template>
        <!-- Fonction d'affichage des themes -->

        <xsl:template name="theme">
         <xsl:param name="choix" />        <!-- Reponses du theme en cours -->
         <xsl:param name="num_theme" select="1"/>     <!-- Numero du theme en cours -->
         <xsl:param name="score" />            <!-- Score total de tous les themes -->
         
         <xsl:variable name="reponses_theme" select="substring-before($choix, '|')" />        <!-- Les reponses du theme a traiter -->
         <xsl:variable name="reponses_hors_theme" select="substring-after($choix, '|')" />    <!-- Les autres reponses -->
         
         <table width="100%">
          <tr>
           <td align="left" bgcolor="#CCCCFF">
            <H3>
             <i>
              <br />
              Th&#232;me: <xsl:value-of select="theme[$num_theme]/@title" />
             </i>
            </H3>
           </td>
          </tr>
        </table>
        <!-- Affichage des réponses du theme en cours -->
         <xsl:call-template name="affichage_question">
          <xsl:with-param name="choix" select="$reponses_theme" />
          <xsl:with-param name="num_theme" select="1" />
          <xsl:with-param name="num_question" select="1" />
         </xsl:call-template>
         
         
          <xsl:call-template name="affichage_question">
          <xsl:with-param name="choix" select="$reponses_theme" />
          <xsl:with-param name="num_theme" select="1" />
          <xsl:with-param name="num_question" select="2" />
         </xsl:call-template>
         
         
          <xsl:call-template name="affichage_question">
          <xsl:with-param name="choix" select="$reponses_theme" />
          <xsl:with-param name="num_theme" select="1" />
          <xsl:with-param name="num_question" select="3" />
         </xsl:call-template>
         
         
          <xsl:call-template name="affichage_question">
          <xsl:with-param name="choix" select="$reponses_theme" />
          <xsl:with-param name="num_theme" select="1" />
          <xsl:with-param name="num_question" select="4" />
         </xsl:call-template>
         
         
          <xsl:call-template name="affichage_question">
          <xsl:with-param name="choix" select="$reponses_theme" />
          <xsl:with-param name="num_theme" select="1" />
          <xsl:with-param name="num_question" select="5" />
         </xsl:call-template>
         
         
          <xsl:call-template name="affichage_question">
          <xsl:with-param name="choix" select="$reponses_theme" />
          <xsl:with-param name="num_theme" select="1" />
          <xsl:with-param name="num_question" select="6" />
         </xsl:call-template>
         
         
          <xsl:call-template name="affichage_question">
          <xsl:with-param name="choix" select="$reponses_theme" />
          <xsl:with-param name="num_theme" select="1" />
          <xsl:with-param name="num_question" select="7" />
         </xsl:call-template>
         
         
          <xsl:call-template name="affichage_question">
          <xsl:with-param name="choix" select="$reponses_theme" />
          <xsl:with-param name="num_theme" select="1" />
          <xsl:with-param name="num_question" select="8" />
         </xsl:call-template>
         
         
         <xsl:choose>
          <xsl:when test="string-length($reponses_hors_theme) &gt;= 1">
           <xsl:call-template name="theme">
            <xsl:with-param name="choix" select="$reponses_hors_theme"/>
            <xsl:with-param name="num_theme" select="$num_theme + 1" />
           </xsl:call-template>
          </xsl:when>
          <xsl:otherwise>
          </xsl:otherwise>
         </xsl:choose>
        </xsl:template>


        <!-- Fonction d'affichage des questions et de leurs reponses -->
        <xsl:template name="affichage_question">
         <xsl:param name="choix" />
         <xsl:param name="num_theme" select="1"/>
         <xsl:param name="num_question" />
         
         <xsl:variable name="reponses_question" select="substring-before($choix, ':')" />
         <xsl:variable name="reponses_hors_question" select="substring-after($choix, ':')" />

         <H4>
          Question <xsl:value-of select="$num_question" /> :
          <xsl:value-of select="theme[$num_theme]/question[$num_question]/libelle" />
        </H4>

         <H4>
          Réponse:
          <xsl:value-of select="theme[$num_theme]/question[$num_question]/choix[@score='1']" />
        </H4>
         <!-- Affichage des reponses saisies et correction -->
         <xsl:choose>
          <xsl:when test="$reponses_question = 0">
           <i>Vous avez choisi de ne pas répondre a cette question.</i><br />
          </xsl:when>
          <xsl:otherwise>
           <!-- Suivant le type des questions on aura des reponses sous d'autre formes -->
           <xsl:choose>
            <xsl:when test="theme[$num_theme]/question[$num_question]/choix='radio'">
             Réponse choisie (<xsl:value-of select="$reponses_question" />) :
             <xsl:value-of select="theme[$num_theme]/question[$num_question]/choix[position()=$reponses_question]" /><br />
             Réponse exacte :
             <xsl:call-template name="affichage_reponses">
              <xsl:with-param name="num_theme" select="$num_theme" />
              <xsl:with-param name="num_question" select="$num_question" />
             </xsl:call-template>
             <br />
            </xsl:when>
            </xsl:choose>
          </xsl:otherwise>
        </xsl:choose>
        </xsl:template>
        <!-- Fonction d'affichage des bonnes reponses -->
        <xsl:template name="affichage_reponses">
         <xsl:param name="num_theme" />     <!-- Numero du theme en cours -->
         <xsl:param name="num_question" />     <!-- Numero de la question en cours -->

         <xsl:for-each select="theme[$num_theme]/question[$num_question]/choix">
          <xsl:if test="@score &gt; 0">
           <xsl:value-of select="text()"/>
          </xsl:if>
         </xsl:for-each>
        </xsl:template>

        </xsl:stylesheet>

        • Partager sur Facebook
        • Partager sur Twitter

        javas cript et xml

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown