AccueilDernières imagesRechercherS'enregistrerConnexion

Forum de graphisme, codage et game design proposant des tutoriels, astuces, libres services et commandes dans les domaines de l'infographie amateur, de l'intégration web (HTML et CSS essentiellement) ainsi que dans la conception de RPG sur forum.

-38%
Le deal à ne pas rater :
Ecran PC gaming 23,8″ – ACER KG241Y P3bip à 99,99€
99.99 € 159.99 €
Voir le deal

    (Onyx) Comment créer un test ?

    ROGERS.
    ROGERS.
    FémininAge : 29Messages : 335

    Dim 30 Nov 2014 - 20:35

    Comment créer un test ?



    Coucou tout le monde ! Voilà j'aimerais savoir comment créer un test sur forum, en gros pour mon forum RPG j'aimerais aider les gens à trouver d'eux même le genre de personnage qu'ils veulent interpréter, selon la race. Il y aurait donc plusieurs questions à poser et chaque choix aurait une conséquence sur ce qu'ils seraient. J'ai beau chercher sur internet... Pas moyen de trouver comment faire ou trouver un site qui propose ce genre de chose ce qui m'étonne pas mal Oo du moins qui serait compatible sur forum.

    Schéma(s) et Eléments
    Schémas : Bah du coup, je n'en ai pas :'). On peut voir comme sur Hitek et leur test de personnalité par exemple. Comme ceci
    Tailles des éléments : De la taille des sondages sur forum (je ne connais pas la taille exact..)
    Version de votre forum : PHPBB2


    Ressources
    Un fond noir suffira

    Autres précisions ?
    Je souhaite en faire plusieurs selon sur quoi les joueurs tombent, par exemple j'aimerais commencer le test par "Quelle race vous correspond ?" et selon la race cela en découlera sur d'autres tests.


    MERCI BEAUCOUP <3
    Onyx
    Onyx
    FémininAge : 30Messages : 3350

    Jeu 11 Déc 2014 - 3:29

    Badibam!

    Est-ce que la demande est toujours d'actualité? N'oublie pas que tu as droit à un up à tous les 48h, cela nous permet de faire sûr de ne pas t'oublier Wink



    ROGERS.
    ROGERS.
    FémininAge : 29Messages : 335

    Jeu 11 Déc 2014 - 3:30

    Bonjour ! Oui, toujours d'actu Very Happy
    Onyx
    Onyx
    FémininAge : 30Messages : 3350

    Jeu 11 Déc 2014 - 6:33

    Comme ça?

    http://libertia.forum-canada.com/h5-formulaire

    C'est assez long à faire et on doit recharger la page si on veut recommencer le test sans fausser les résultats, mais ça marche ^^



    ROGERS.
    ROGERS.
    FémininAge : 29Messages : 335

    Ven 12 Déc 2014 - 1:23

    Oui effectivement quelque chose dans ce genre là Very Happy
    Onyx
    Onyx
    FémininAge : 30Messages : 3350

    Ven 12 Déc 2014 - 5:15

    Mmhh... Okie.

    Tu aurais environ combien de questions par tests? Et de résultat possible (exemple: 3 races, 6 métiers, etc...)?



    ROGERS.
    ROGERS.
    FémininAge : 29Messages : 335

    Ven 12 Déc 2014 - 5:24

    Serait il possible que je te montre directement l'article ?
    Car du coup en attendant j'ai fais ça grossièrement sur mon forum et mes joueurs doivent faire le test et c'est moi qui y répond en attendant le test "officiel" sur une plateforme adéquat. Un à 11 questions mais possibilité de 13 points car certaines questions correspondent à deux catégories
    Et une à 14 questions qui rapportent 16 points pour les même raisons que ci-dessus.
    C'est un test que j'avais créer pour guider les joueurs à connaître la race qui leur correspondrait (elfes, nains, humains, Hobbit ou berserker). Et l'autre est pour savoir, pour les elfes, de quel royaume ils viendraient et il y en a trois (Imladris, Forêt Noire et Lorien)... Je ne sais pas si je peux donner le lien comme ça je préfère demander du coup ^^.
    Onyx
    Onyx
    FémininAge : 30Messages : 3350

    Ven 12 Déc 2014 - 5:53

    Tu peux donner le lien ^^



    ROGERS.
    ROGERS.
    FémininAge : 29Messages : 335

    Ven 12 Déc 2014 - 5:56

    Voilà http://thegreatadventure.forumactif.org/t110-qui-me-correspond
    Onyx
    Onyx
    FémininAge : 30Messages : 3350

    Ven 12 Déc 2014 - 6:09

    ... *o*

    Ok, ça va être complexe :hum:

    Je peux savoir quel choix de réponse donne combien de points à quelle catégorie?
    (Et si tu veux pas que les gens voient ta feuille de solution, tu peux l'envoyer par MP)



    ROGERS.
    ROGERS.
    FémininAge : 29Messages : 335

    Ven 12 Déc 2014 - 6:22

    Je t'envoie les détails demain par MP Very Happy sur portable c'est pas évident ! Merci à toi en tout cas :).

    EDIT : Est ce qu'il y aurait un moyen que j'ai les codes pour le faire moi même ? Car avec le temps je vais inventer d'autres tests du coup ça m'éviterait de revenir vous embêter avec ça :3.
    Onyx
    Onyx
    FémininAge : 30Messages : 3350

    Ven 12 Déc 2014 - 6:40

    Bien sûr ^^

    En fait, j'veux juste faire sûre d'être capable de le faire correctement avant de te l'expliquer, cela serait assez pathétique si je savais pas ce que je faisais en fait Rolling Eyes



    Onyx
    Onyx
    FémininAge : 30Messages : 3350

    Dim 14 Déc 2014 - 8:23

    Alors voilà ce que cela donne : http://libertia.forum-canada.com/h9-formulaire-3

    Juste pour savoir, est-ce que tu préférais la première façon avec des onglets ou comme ça?



    ROGERS.
    ROGERS.
    FémininAge : 29Messages : 335

    Dim 14 Déc 2014 - 8:27

    Oh ! Je préfère celui là c'est plus intéressant de voir les % Very Happy
    Onyx
    Onyx
    FémininAge : 30Messages : 3350

    Jeu 18 Déc 2014 - 7:07

    Voilà le code pour le premier test (les explications vont suivre dans le deuxième post) :
    Code:
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8" />
    <title>Test</title>
    <style type="text/css">
    body {
      margin: 0px;
    }
    .bloc_formulaire {
      background: #000000;
      height: auto;
      width: 600px;
      margin: auto;
      padding: 10px;
      color: #a3a3a3;
      text-align: left;
      position: relative;
      font-family: arial;
      font-size: 13px;
    }
    #resultats {
      display: none;
    }
    </style>
    </head>
    <body>
      <div class="bloc_formulaire">
        <b>1. Quelle est votre boisson favorite ?</b><br />
        <input id="choix1_question1" type="radio" name="question_1" />Une bonne bière<br />
        <input id="choix2_question1" type="radio" name="question_1" />Un bon vin<br />
        <input id="choix3_question1" type="radio" name="question_1" />Un bon cognac<br />
        <input id="choix4_question1" type="radio" name="question_1" />Un grand verre de lait<br /><br />
        <b>2. Que préférez-vous ?</b><br />
        <input id="choix1_question2" type="radio" name="question_2" />Une forêt verdoyante<br />
        <input id="choix2_question2" type="radio" name="question_2" />Une petite maison cosy<br />
        <input id="choix3_question2" type="radio" name="question_2" />De grands paturages<br />
        <input id="choix4_question2" type="radio" name="question_2" />Un endroit solide et impénétrable<br />
        <input id="choix5_question2" type="radio" name="question_2" />Un royaume où tout le monde se connait<br /><br />
        <b>3. Pour vous, l'amour...<br />
        <input id="choix1_question3" type="radio" name="question_3" />Une femme(homme), deux femmes(hommes), trois femmes(hommes), et plus encore.<br />
        <input id="choix2_question3" type="radio" name="question_3" />Une seule personne pour le restant de mes jours me suffit.<br />
        <input id="choix3_question3" type="radio" name="question_3" />Une épouse/un époux, et peut-être une ou deux maîtresses/amants.<br />
        <input id="choix4_question3" type="radio" name="question_3" />Ca presse pas ! Du calme.<br />
        <input id="choix5_question3" type="radio" name="question_3" />L'amour ? Qu'est-ce ?</b><br /><br />
        <b>4. Votre arme fétiche...<br />
        <input id="choix1_question4" type="radio" name="question_4" />Une arme ? JAMAIS !<br />
        <input id="choix2_question4" type="radio" name="question_4" />Une épée<br />
        <input id="choix3_question4" type="radio" name="question_4" />Un arc<br />
        <input id="choix4_question4" type="radio" name="question_4" />Une bonne grosse masse, ou une hache<br />
        <input id="choix5_question4" type="radio" name="question_4" />Mes poings<br /><br />
        <b>5. Votre plat favori...<br />
        <input id="choix1_question5" type="radio" name="question_5" />Un bon gros steak !<br />
        <input id="choix2_question5" type="radio" name="question_5" />Du miel ou de la crème, soyons fou : les deux <br />
        <input id="choix3_question5" type="radio" name="question_5" />Des pâtisseries, du sucre, du sucre !!<br />
        <input id="choix4_question5" type="radio" name="question_5" />Un plat verdoyant<br />
        <input id="choix5_question5" type="radio" name="question_5" />Avoir à manger, c'est déjà suffisant...<br /><br />
        <b>6. Les fêtes auxquelles vous aimez vous rendre...<br />
        <input id="choix1_question6" type="radio" name="question_6" />De la musique en fond, de bonnes histoires, de la bière qui coule à flot.<br />
        <input id="choix2_question6" type="radio" name="question_6" />Une musique joyeuse, des chants, des poèmes et de la danse. Et du vin !<br />
        <input id="choix3_question6" type="radio" name="question_6" />Une fête avec tout le village, avec à manger à profusion, plus que mon estomac peut en contenir.<br />
        <input id="choix4_question6" type="radio" name="question_6" />Une fête ? C'est quoi ça ?</b><br />
        <input id="choix5_question6" type="radio" name="question_6" />De la bière, des femmes, des histoires de guerre.<br /><br />
        <b>7. Souhaitez-vous avoir une famille ?</b><br />
        <input id="choix1_question7" type="radio" name="question_7" />Une famille ? Qu'est-ce que c'est ?</b><br />
        <input id="choix2_question7" type="radio" name="question_7" />Un jour, peut-être.<br />
        <input id="choix3_question7" type="radio" name="question_7" />Oh oui, avec 5 ou 6 enfants MINIMUM!<br />
        <input id="choix4_question7" type="radio" name="question_7" />Oui, avec un ou deux enfant(s).<br />
        <input id="choix5_question7" type="radio" name="question_7" />Faut bien faire durer la lignée !<br /><br />
        <b>8. Votre bijou par excellence ?</b><br />
        <input id="choix1_question8" type="radio" name="question_8" />Des bijoux dorés<br />
        <input id="choix2_question8" type="radio" name="question_8" />Des bijoux argentés<br />
        <input id="choix3_question8" type="radio" name="question_8" />Des pierres précieuses<br />
        <input id="choix4_question8" type="radio" name="question_8" />Je m'en fiche.<br /><br />
        <b>9. Souhaiteriez-vous être immortel ?</b><br />
        <input id="choix1_question9" type="radio" name="question_9" />Je le suis déjà.<br />
        <input id="choix2_question9" type="radio" name="question_9" />Oui, à moi le pouvoir et la vie éternel !<br />
        <input id="choix3_question9" type="radio" name="question_9" />Non, une vie courte et bienheureuse me suffit.<br />
        <input id="choix4_question9" type="radio" name="question_9" />Je prends ce qu'on me donne et je fais avec.<br /><br />
        <b>10. Comment aimez-vous vos femmes ? (Ou comment souhaiteriez-vous être, en temps que femme)<br />
        <input id="choix1_question10" type="radio" name="question_10" />Petite, mais le fort caractère qui compense.<br />
        <input id="choix2_question10" type="radio" name="question_10" />Grande, pâle, à la fois douce et inspirée par l'art.<br />
        <input id="choix3_question10" type="radio" name="question_10" />Grande, costaud, ça passe ou ça casse !<br />
        <input id="choix4_question10" type="radio" name="question_10" />Je m'en fiche, du moment que je suis tranquille.<br /><br />
        <b>11. Comment aimez-vous vos hommes ? (ou comment souhaiteriez-vous être, en temps qu'homme)<br />
        <input id="choix1_question11" type="radio" name="question_11" />Petit, puissant : un coup de poing et tu voles.<br />
        <input id="choix2_question11" type="radio" name="question_11" />Grand, fin et habile : un caractère souple et calme.<br />
        <input id="choix3_question11" type="radio" name="question_11" />Grand, fort, capable de soulevez des montagnes.<br />
        <input id="choix4_question11" type="radio" name="question_11" />Petit ou grand, l'important c'est savoir cuisiner !<br /><br />
        <button id="bouton_resultat" type="button" onclick="test1()">Cliquez pour voir votre résultat!</button>
        <div id="resultats">
          <br />
          <b>Félicitation !</b>
          <br />
          <br />
          <div>Vous êtes <span id="resultat_fin1"></span>% elfe !</div>
          <div>Vous êtes <span id="resultat_fin2"></span>% humain !</div>
          <div>Vous êtes <span id="resultat_fin3"></span>% hobbit !</div>
          <div>Vous êtes <span id="resultat_fin4"></span>% nain !</div>
          <div>Vous êtes <span id="resultat_fin5"></span>% berseker !</div>
        </div>
      </div>
      <script type="text/javascript">
      function test1(){
        var choix1 = [];
        var choix2 = [];
        var choix3 = [];
        var choix4 = [];
        var choix5 = [];
        var total = [];
     
        for (var i = 1; i <= 11; i++) {
          choix1[i] = Number(document.getElementById("choix1_question" + i).checked);
        }
        for (var i = 1; i <= 11; i++) {
          choix2[i] = Number(document.getElementById("choix2_question" + i).checked);
        }
        for (var i = 1; i <= 11; i++) {
          choix3[i] = Number(document.getElementById("choix3_question" + i).checked);
        }
        for (var i = 1; i <= 11; i++) {
          choix4[i] = Number(document.getElementById("choix4_question" + i).checked);
        }
        for (var i = 2; i <= 7; i++) {
          choix5[i] = Number(document.getElementById("choix5_question" + i).checked);
        }

        total[1] = choix2[1] + choix1[2] + choix2[3] + choix3[4] + choix4[5] + choix2[6] + choix4[7] + choix2[8] + choix3[8] + choix1[9] + choix2[10] + choix2[11];
        total[2] = choix3[1] + choix5[2] + choix1[3] + choix2[4] + choix5[5] + choix5[6] + choix2[7] + choix1[8] + choix2[8] + choix2[9] + choix4[10] + choix2[11] + choix4[11];
        total[3] = choix1[1] + choix2[2] + choix4[3] + choix1[4] + choix3[5] + choix3[6] + choix3[7] + choix4[8] + choix3[9] + choix4[10] + choix4[11];
        total[4] = choix1[1] + choix4[2] + choix3[3] + choix4[4] + choix1[5] + choix1[6] + choix5[7] + choix1[8] + choix4[9] + choix1[10] + choix1[11];
        total[5] = choix4[1] + choix3[2] + choix5[3] + choix5[4] + choix2[5] + choix4[6] + choix1[7] + choix4[8] + choix3[9] + choix4[9] + choix3[10] + choix3[11];
        var total_total = total[1] + total[2] + total[3] + total[4] + total[5];

        if ((total_total - choix1[1] - choix1[8] - choix2[8] - choix4[8] - choix3[9] - choix4[9] - choix4[10] - choix2[11] - choix4[11]) != 11) {
          alert("Vous devez répondre à toutes les questions !");
        }
     
        else {
          document.getElementById("resultats").style.display = "block";
     
          for (var i = 1; i <= 5; i++) {
              document.getElementById("resultat_fin" + i).innerHTML = Math.round((total[i]*100/total_total)*1)/1;
          }
        }
      }
      </script>
    </body>
    </html>



    Onyx
    Onyx
    FémininAge : 30Messages : 3350

    Jeu 18 Déc 2014 - 8:59


    Comment créer un test à choix de réponse?


    Ce tutoriel est en 4 étapes :
    > Nous créons la base de la page html.
    > Nous créons le formulaire du test.
    > Nous créons et ajuste le javascript qui va servir à donner le résultat du test.
    > Nous mettons un iframe contenant la page HTML aux endroits où nous voulons utiliser le test.

    Mettre un crédit vers Never-Utopia est obligatoire.



    1. Base de la page HTML


    Premièrement, nous doit créer une page HTML. Pour cela, on va dans :
    > Panneau d'administration
    > > Modules
    > > > HTML & Javascript
    > > > > Gestion des pages HTML

    Ensuite, nous devons choisir l'option de création "Création en mode avancé (HTML)". Nous devons choisir un titre quelconque, puis s'assurer que les options suivantes sont cochées :

    Voulez-vous utiliser le haut et le bas de page de votre forum ? NON
    Utiliser cette page en tant que page d'accueil ? NON

    Dans le contenu, nous devons mettre ceci :
    Code:
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8" />
    <title>Test</title>
    <style type="text/css">
    body {
      margin: 0px;
    }
    .bloc_formulaire {
      height: auto;
      width: 600px;
      margin: auto;
      padding: 10px;
      text-align: left;
      position: relative;
      font-family: arial;
      font-size: 13px;
    }
    #resultats {
      display: none;
    }
    </style>
    </head>
    <body>
      Contenu visible de la page HTML
    </body>
    </html>


    Et qu'est-ce qui est quoi?

    «!DOCTYPE html» et «html»Début de la page HTML.
    «head»Début de la partie cachée de la page HTML.
    «title»Titre du test«/title»Titre de la page HTML. C'est ce qui apparaîtra comme titre de l'onglet.
    «meta charset="UTF-8" /»Permet les caractères spéciaux comme les "é".
    «style type="text/css"»CSS«/style»CSS de la page.
    «/head»Fin de la partie cachée de la page HTML.
    «body»Début du contenu visible de la page HTML.
    «/body»Début du contenu visible de la page HTML.
    «/html»Fin de la page HTML.


    À partir de cette étape, je vous recommenderais de sauvegarder régulièrement pour ne pas perdre quelque chose par erreur. FA a la désagréable habitude de considérer que "écrire un code" est la même chose que "ne rien faire" et vous ramène à la page principale si vous sauvegardez après un trop long moment.

    Un truc, c'est de copier tout votre code, enregistrer, puis si ça vous ramène à la page d'accueil, retourner coller le code que vous avez copier avant avant de resauvegarder.



    2. Formulaire du test.


    Entre les balises «body» «/body», donc à la place du contenu visible de la page HTML, nous allons créer notre formulaire. On commence par remplacer le contenu visible par :
    Code:
      <div class="bloc_formulaire">
        Contenu du formulaire
      </div>

    Ça, c'est le bloc qui contient et met en forme le test.





    Puis, avant même de penser à créer le contenu du formulaire, nous devons nous faire un plan de nos questions et de nos choix de réponses avec le groupe auquel chaque choix de réponse est associée. Si certaines questions ont un nombre différent de choix de réponse que d'autres, il y aura un ordre dans lequel il faut les placer.

    Par exemple, si nous avons 4 questions qui ont 6 choix de réponse, 3 questions qui ont 5 choix de réponse et 5 questions à 4 choix de réponse, on va les mettre dans cet ordre :
    > Les questions à 6 choix de réponse en premier.
    > > Les questions à 5 choix de réponse ensuite.
    > > > Les questions à 4 choix de réponse à la fin.

    Bref, on fonctionne toujours des questions au plus grand nombre de choix de réponses au plus petit.

    Dans notre cas, on va partir du principe qu'on a 5 question, dont 4 qui ont 3 choix de réponse et une qui a 2 choix de réponse.





    Ensuite, on va mettre nos questions. Personnellement, j'aime bien mettre mes questions en gras. Alors on met ceci à la place du contenu du formulaire :
    Code:
        <b>1. Première question</b><br />
        <b>2. Deuxième question</b><br />
        <b>3. Troisième question</b><br />
        <b>4. Quatrième question</b><br />
        <b>5. Cinquième question</b><br />

    Et on continue ainsi en mettant toutes nos questions. À savoir que le «br /» à la fin de chaque question est un retour à la ligne.





    Maintenant que nos questions sont mises, nous allons mettre nos choix de réponse. Comme ma 1ère question a 3 choix de réponses. Alors notre première question va devenir ainsi :
    Code:
        <b>1. Quelle est votre boisson favorite ?</b><br />
        <input id="choix1_question1" type="radio" name="question_1" />Premier choix de réponse<br />
        <input id="choix2_question1" type="radio" name="question_1" />Deuxième choix de réponse<br />
        <input id="choix3_question1" type="radio" name="question_1" />Troisième choix de réponse<br /><br />

    Nous avons une balise «input» qui est une case à cocher, l'énoncé du choix de réponse, puis le «br /» qui permet le retour à la ligne à la fin de chaque choix de réponse. J'ai mis deux «br /» à la fin de mon dernier choix de réponse pour qu'il y ait un espace entre mes questions.

    Dans la balise «input» de chaque choix de réponse, il y a trois éléments à faire attention.

    Le « id="choix1_question1" » du premier choix de réponse indique c'est le 1er choix de réponse de la 1ère question. Si c'était le 3ème choix de réponse de la 4ème question, cela aurait été « id="choix3_question4" ». C'est très important parce que c'est ce qui nous permet de différencier chaque choix de réponse.

    Le « type="radio" » indique que c'est une case à cocher.

    Le « name="question1" » indique que cela appartient à la 1ère question. Cela permet aussi qu'il y ait un seul choix de réponse qui puisse être sélectionné parmi les 3 choix de réponses. Si ces choix de réponse auraient été les choix de la 2ème question, il aurait fallu mettre « name="question2" ».

    On continue comme ça pour mettre les choix de réponse à toutes nos questions.





    À la suite de nos questions et de nos choix de réponse, on va mettre le bouton qui permet d'envoyer nos données :
    Code:
        <button type="button" onclick="test()">Cliquez pour voir votre résultat!</button>

    Le « Cliquez pour voir votre résultat! » est la phrase qui apparaît dans le bouton. Vous pouvez le changer si vous voulez. Le « onclick="test()" » veut dire que lorsqu'on clique sur le bouton, la fonction "test()" (qu'on va créer dans notre javascript plus tard) va s'activer.





    À la suite de note bouton, nous allons mettre la section pour nos résultats :
    Code:
        <div id="resultats">
          <br />
          <b>Félicitation !</b>
          <br />
          <br />
          Vous êtes <span id="resultat_fin1"></span> humain !<br />
          Vous êtes <span id="resultat_fin2"></span> robot !<br />
          Vous êtes <span id="resultat_fin3"></span> extraterrestre !<br />
        </div>

    La section des résultats est entourée par un div avec l'id "resultats". Dans le CSS, cet id avait un display "none", ce qui fait que cette section est habituellement invisible.

    À l'intérieur de cette div, j'ai quelques retours à la ligne pour faire joli et un "félicitation" en gras. Cela ne sert à rien, c'est juste pour l'esthétique.

    Tout à l'heure, quand nous bâtissions nos questions, nous avions dit que nous devions choisir notre nombre de question, notre nombre de choix de réponse et avec le groupe auquel chaque choix de réponse est associée. Les groupes, j'appelle ça des "fins". S'il y a trois groupes possibles, ce sera trois "fins" possibles.
    Dans notre cas, il y a la fin des humains (fin1), la fin des robots (fin2) et la fin des extraterrestres (fin3).

    Donc pour chaque fin, on met une petite phrase qui dit auquel groupe on appartient. Là où devrait être le résultat (5%, 12%, 15%, etc...), on met une balise «span» vide.

    L'id de chaque span dépend de la fin. Pour la fin des humains (fin1), c'est "resultat_fin1". Pour la fin des robots (fin2), c'est "resultat_fin2". Pour la fin des extraterrestres (fin3), c'est "resultat_fin3". Je crois que vous comprenez le principe!





    Au final, cela devrait ressembler à ceci :
    Code:
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8" />
    <title>Test</title>
    <style type="text/css">
    body {
      margin: 0px;
    }
    .bloc_formulaire {
      background: #000000;
      height: auto;
      width: 600px;
      margin: auto;
      padding: 10px;
      color: #a3a3a3;
      text-align: left;
      position: relative;
      font-family: arial;
      font-size: 13px;
    }
    #resultats {
      display: none;
    }
    </style>
    </head>
    <body>
      <div class="bloc_formulaire">
        <b>1. Première question</b><br />
        <input id="choix1_question1" type="radio" name="question_1" />Premier choix de réponse (pour extraterrestre - fin3)<br />
        <input id="choix2_question1" type="radio" name="question_1" />Deuxième choix de réponse (pour humain - fin1)<br />
        <input id="choix3_question1" type="radio" name="question_1" />Troisième choix de réponse (pour robot - fin2)<br /><br />
        <b>2. Deuxième question</b><br />
        <input id="choix1_question2" type="radio" name="question_2" />Premier choix de réponse (pour humain - fin1)<br />
        <input id="choix2_question2" type="radio" name="question_2" />Deuxième choix de réponse (pour extraterrestre - fin3)<br />
        <input id="choix3_question2" type="radio" name="question_2" />Troisième choix de réponse (pour robot - fin2)<br /><br />
        <b>3. Troisième question</b><br />
        <input id="choix1_question3" type="radio" name="question_3" />Premier choix de réponse (pour robot - fin2)<br />
        <input id="choix2_question3" type="radio" name="question_3" />Deuxième choix de réponse (pour humain - fin1)<br />
        <input id="choix3_question3" type="radio" name="question_3" />Troisième choix de réponse (pour extraterrestre - fin3)<br /><br />
        <b>4. Quatrième question</b><br />
        <input id="choix1_question4" type="radio" name="question_4" />Premier choix de réponse (pour extraterrestre - fin3)<br />
        <input id="choix2_question4" type="radio" name="question_4" />Deuxième choix de réponse (pour robot - fin2)<br />
        <input id="choix3_question4" type="radio" name="question_4" />Troisième choix de réponse (pour humain - fin1)<br /><br />
          <b>5. Cinquième question</b><br />
        <input id="choix1_question5" type="radio" name="question_5" />Premier choix de réponse (pour robot et pour extraterrestre - fin2 et fin3)<br />
        <input id="choix2_question5" type="radio" name="question_5" />Deuxième choix de réponse (pour humains - fin1)<br /><br />
        <button id="bouton_resultat" type="button" onclick="test1()">Cliquez pour voir votre résultat!</button>
        <div id="resultats">
          <br />
          <b>Félicitation !</b>
          <br />
          <br />
          Vous êtes <span id="resultat_fin1"></span> humain !<br />
          Vous êtes <span id="resultat_fin2"></span> robot !<br />
          Vous êtes <span id="resultat_fin3"></span> extraterrestre !<br />
        </div>
      </div>
    </body>
    </html>



    3. Javascript


    Maintenant qu'on a le formulaire qui sert à entrer les données, c'est le temps de transformer ces données en résultats.

    On commence donc par mettre ceci dans le «body» de la page HTML, juste à la suite de notre formulaire :
    Code:
      <script type="text/javascript">
      Contenu du script
      </script>

    Il s'agit d'une balise «script» qui indique que son contenu est un javascript.





    D'ailleurs, à la place du contenu, nous allons commencer par mettre ceci :
    Code:
      function test1(){
      Contenu de la fonction test1()
      }

    Vous vous souvenez du bouton pour soumettre le formulaire? Celui qui avait un onclick="test1()" et que je disais qu'il allait utiliser la fonction "test1()" lorsqu'on cliquait dessus? Eh bien c'est exactement ce qu'on vient de créer.





    Sauf que là, notre fonction ne fait rien. Alors on va lui ajouter du contenu :
    Code:
        var choix1 = [];
        var choix2 = [];
        var choix3 = [];
        var total = [];

    Ça, c'est des tableaux. Plus précisément, c'est des tableaux qui vont contenir nos données. Par exemple, le « var choix1 = []; » veut dire que c'est un tableau qui contient nos données relatives à tous les premiers choix de réponse de nos questions.

    Du coup, si nous avions une question qui a 4 choix de réponse, il faudrait ajouter var choix4 = []; pour créer un tableau pour les quatrièmes choix de réponse. Comme nous avons au maximum 3 choix de réponse par question, nous mettons seulement « var choix1 = []; » « var choix2 = []; » et « var choix3 = []; ».

    Enfin, le var total = []; est un tableau qui va contenir nos totaux. Cela ne vous dit rien pour le moment, mais nous allons nous en servir tout à l'heure dans nos calculs.





    Pour le moment, ces tableaux sont vides. Nous devons y mettre nos données avant de pouvoir les utiliser. Du coup, nous allons utiliser ce qu'on appelle des boucles qu'on va rajouter juste à la suite de nos tableaux vides :
    Code:
    for (var i = 1; i <= 5; i++) {
          choix1[i] = Number(document.getElementById("choix1_question" + i).checked);
        }
        for (var i = 1; i <= 5; i++) {
          choix2[i] = Number(document.getElementById("choix2_question" + i).checked);
        }
        for (var i = 1; i <= 4; i++) {
          choix3[i] = Number(document.getElementById("choix3_question" + i).checked);
        }

    Vous le constaterez peut-être, mais il y a une boucle pour chaque choix de réponse. Ces boucles servent à aller chercher ce qu'on a entré dans le formulaire et à le mettre dans les tableaux. Les cases cochées valent 1 point et les cases non-cochées valent 0 point.

    Je vais prendre la première boucle comme exemple pour vous montrer les éléments qu'on doit modifier :
    Code:
        for (var i = 1; i <= 5; i++) {
          choix1[i] = Number(document.getElementById("choix1_question" + i).checked);
        }

    Le «i <= 5 » sert à dire combien de fois la boucle va se répéter. Comme nous avons 5 questions qui ont au moins 1 choix de réponse, nous mettons «i <= 5 ». Si nous avions 6 questions qui ont au moins 1 choix de réponse, on aurait mis «i <= 6 ».

    D'ailleurs, c'est pour ça que pour le troisième choix de réponse, il y a «i <= 4 ». En effet, il y a juste 4 questions qui ont au moins 3 choix de réponses.

    Sinon, j'imagine que vous devinez pour le deuxième choix de réponse, les choix1 deviennent choix2, etc...

    C'est tout pour ces boucles qui ont pris nos données et les ont trié dans nos tableaux!





    Maintenant, on va aller calculer le total des points récoltés par chaque fin. Donc on ajoute ceci à la suite de nos boucles :
    Code:
        total[1] = choix2[1] + choix1[2] + choix2[3] + choix3[4] + choix2[5];
        total[2] = choix3[1] + choix3[2] + choix1[3] + choix2[4] + choix1[5];
        total[3] = choix1[1] + choix2[2] + choix3[3] + choix1[4] + choix1[5];
        var total_total = total[1] + total[2] + total[3];

    Nous allons le décortiquer. Pour ça, je vais juste prendre une petite partie de la première ligne :
    Code:
        total[1] = choix2[1] + choix1[2] + choix2[3] + choix3[4] + choix2[5];

    Cela veut dire que :
    Le total de la première fin (celle des humains)
    =
    choix 2 de la question 1 (choix2[1])
    +
    choix 1 de la question 2 (choix1[2])
    +
    choix 2 de la question 3 (choix2[3])
    +
    choix 3 de la question 4 (choix3[4])
    +
    choix 2 de la question 5 (choix2[5])

    Je crois que tu comprends le principe, non?

    Le « total[1] » correspond au total des points de la fin1 (celle des humains).

    Les choixA[B] correspondent aux choix du tableau, le A étant le numéro du choix et le B étant le numéro de la question.

    D'ailleurs, il faut toujours s'assurer de mettre ; à la fin de notre addition pour indiquer qu'elle est terminée.


    Quant au « var total_total = total[1] + total[2] + total[3]; », c'est le total de tous les points. Cela nous sert à calculer nos %. Si nous avions 4 fins possibles, on aurait ajouté un « + total[4] » à la fin.





    Maintenant qu'on a terminé avec l'addition de nos points, on va passer à la suite. On doit ajouter ceci à la suite de nos totaux :
    Code:
        if ((total_total - choix1[5]) != 5) {
          alert("Vous devez répondre à toutes les questions !");
        }

    C'est une condition qui dit que s'il y a des questions qui ne sont pas répondu, il y a un message qui dit "Vous devez répondre à toutes les questions !" qui apparait.

    Il s'agit de ce qu'on appelle une condition, Si la condition est remplie, le message apparait. La condition, c'est ce qui est entre penrenthèses après le « if » :
    Code:
    ((total_total - choix1[5]) != 5)

    Dans notre cas, cela veut dire que si le total de tous les points du formulaire n'est pas égal à 5, le message apparaît.

    Pourquoi 5? Parce que c'est notre nombre de questions. Si nous avions 7 questions, ont aurait mis 7.

    Quant au « (total_total - choix1[5]) », il s'agit du de tous les points, moins le 1er choix de la question 5 puisque ce choix donne 1 point à la fin 2 et 1 point à la fin 3. Il faut toujours soustraire les choix de réponse qui reviennent plus qu'une fois.

    C'était tout pour cette alerte.





    Maintenant, on passe enfin à la partie "résultat" qui s'ajoute à la suite :
    Code:
        else {
          document.getElementById("resultats").style.display = "block";
     
          for (var i = 1; i <= 3; i++) {
              document.getElementById("resultat_fin" + i).innerHTML = Math.round((total[i]*100/total_total)*1)/1 + "%";
          }
        }

    Le « else { } » indique ette partie ne s'active que si l'alerte n'est pas apparue et donc, que toutes les questions sont répondues.

    Le « document.getElementById("resultats").style.display = "block"; » fait apparaître la section des résultats.

    Le reste, c'est le calcul des résultats des fins.

    Il faut faire attention au « i <= 3 ». Le 3, c'est ton nombre de fins possibles. S'il y avait eu 4 fins possibles, il aurait fallu changer le 3 pour un 4. S'il y avait eu 9 fins possibles, il aurait fallu changer le 3 pour un 9. Etc...





    Au final, cela devrait ressembler à ceci :
    Code:
      <script type="text/javascript">
      function test1(){
        var choix1 = [];
        var choix2 = [];
        var choix3 = [];
        var total = [];
     
        for (var i = 1; i <= 5; i++) {
          choix1[i] = Number(document.getElementById("choix1_question" + i).checked);
        }
        for (var i = 1; i <= 5; i++) {
          choix2[i] = Number(document.getElementById("choix2_question" + i).checked);
        }
        for (var i = 1; i <= 4; i++) {
          choix3[i] = Number(document.getElementById("choix3_question" + i).checked);
        }

        total[1] = choix2[1] + choix1[2] + choix2[3] + choix3[4] + choix2[5];
        total[2] = choix3[1] + choix3[2] + choix1[3] + choix2[4] + choix1[5];
        total[3] = choix1[1] + choix2[2] + choix3[3] + choix1[4] + choix1[5];
        var total_total = total[1] + total[2] + total[3];

        if ((total_total - choix1[5]) != 5) {
          alert("Vous devez répondre à toutes les questions !");
        }
     
        else {
          document.getElementById("resultats").style.display = "block";
     
          for (var i = 1; i <= 3; i++) {
              document.getElementById("resultat_fin" + i).innerHTML = Math.round((total[i]*100/total_total)*1)/1 + "%";
          }
        }
      }
      </script>



    4. Iframe


    Nous avons maintenant une page HTML contenant un test. Sauf que si on le laisse là, ce n'est pas trop utile. Alors aux endroits ou nous vondront mettre le test, on va mettre un iframe contenant le lien de notre page HTML.

    Quand on enregistre une page HTML et qu'on retourne dans la gestion des pages HTML, on a, dans la deuxième colone, ce qu'on appelle "URL du lien". C'est le lien de ta page HTML.

    Pour l'iframe, il s'agit du code qui va suivre. Tu copies/colles la "URL du lien" de ta page HTML là où c'est écrit en majuscules qu'il faut le mettre et tu postes l'iframe là où tu veux l'utiliser ^^
    Code:
    <iframe src="URL_DU_LIEN_DE_LA_PAGE_HTML" width="620px" height="1500px" style="margin: auto; display: block;" frameBorder="0" seamless="seamless"></iframe>

    Attention, dépendemment du nombre de questions, tu devras peut-être modifier la hauteur (le height) de ton iframe pour qu'il n'y ait pas de barre à droite.





    Voilà, c'est tout! À plus !


    Dernière édition par Onyx le Sam 20 Déc 2014 - 22:10, édité 1 fois



    ROGERS.
    ROGERS.
    FémininAge : 29Messages : 335

    Ven 19 Déc 2014 - 19:31

    Wow merci beaucoup !!
    Onyx
    Onyx
    FémininAge : 30Messages : 3350

    Jeu 1 Jan 2015 - 7:30

    Salut!

    Est-ce que tu as essayé?



    Onyx
    Onyx
    FémininAge : 30Messages : 3350

    Mar 13 Jan 2015 - 5:35

    N'ayant pas de réponses, j'archive ~



    Contenu sponsorisé


      La date/heure actuelle est Jeu 21 Nov 2024 - 13:52