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 :

Réaliser un quiz question par question


Sujet :

JavaScript

  1. #41
    Membre à l'essai
    Homme Profil pro
    Sécurité
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Sécurité

    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    Bon quand je sélectionne une réponse et que j'appuie sur le boutton rien ne se passe, voilà donc le code :
    Code JS : 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
    function get_checked(){
    	var checks= new Array();
    	var inputs = document.getElementsByTagName('input');
    	for (i = 0; i<  inputs.length ; i++){
    		if (inputs[i].checked){
    			checks.push(inputs[i].value);
    		}
    	}
    	return checks;
    }
     
     
    function compare(index){
    checks = get_checked();
    var bool_reponse = true
    for (i = 0; i < checks.length; i++){
          if (in_array(checks[i],questionnaire[index][3])){
     
          }else{
                  bool_reponse = false;
          }
    }
     
    if (bool_reponse){ alert('juste'); }else { alert('faux');}
     
    }
     
    function show_quizz(index){
    clearTimeout(timer);
    timer=setTimeout(function(){temp_ecoule();},10000);
    document.getElementById('affichage').innerHTML = "";
     
    current_index = index;
    document.getElementById("question").innerHTML = questionnaire[index][0];
    document.getElementById("img").src = questionnaire[index][1];
    reponses = document.getElementById("reponses");
    reponses.innerHTML = questionnaire[index][2];
    	for (var i = 0; i < questionnaire[index][3].length ; i++){
    		reponses.innerHTML += "<input type='checkbox' value='"+questionnaire[index][3][i]+"'/>"+questionnaire[index][3][i];
     
    	}
     
    	reponses.innerHTML += "<input type='button' onclick='compare('"+index+"');' value='Valider'>";
     
    }

  2. #42
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Bien entendu, tu fais partie de ces personnes organisées et rationnelles qui utilisent les outils à ta disposition pour développer efficecement. Donc quand je lis :
    Citation Envoyé par valentin45000 Voir le message
    rien ne se passe
    ...je suppose que tu n'as pas voulu nous "gêner" avec trop de détails en provenance du débogueur C'est très aimable à toi.

    Bon, plus sérieusement Installe Firebug, quoi...

  3. #43
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329
    Par défaut
    Par contre fais gaffe, j'ai édité après mon post dessuite après, tu as de l'ancien code.

    Et effectivement, installe firebug il te servira forcément pour un tas d'autres choses, pour de l'ajax notamment !

  4. #44
    Membre à l'essai
    Homme Profil pro
    Sécurité
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Sécurité

    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    ... en fait j'ai déjà firebug ...
    Il m'indique une erreur de syntaxe à "compare(" mais il n'arrive pas à lire les scripts donc il ne me dit pas à quel ligne ...

    Edit : Le code est à jours mais toujours le même problème ...

  5. #45
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329
    Par défaut
    Remet le code à jour stp, sur l' "ancien" il manquait déjà un point virgule !

  6. #46
    Membre à l'essai
    Homme Profil pro
    Sécurité
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Sécurité

    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    C'est fait voilà le code entier, ça aideras je pense
    (Désolé pour l'organisation du code xD)
    Code JS : 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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    function randomRange(minVal,maxVal){
      var randVal = minVal+(Math.random()*(maxVal-minVal));
      return typeof floatVal=='undefined'?Math.round(randVal):randVal.toFixed();
    }
     
    function temp_ecoule(){
    alert('Temps ecoulé, question suivante');
    show_quizz(current_index+1);
    }
     
    var score = 0 ;
    var current_index = 0 ;
     
    var questionnaire = new Array();
     
     
    //QUESTION 1
    questionnaire[0] = new Array();
    questionnaire[0][0] = "Question 1";
    questionnaire[0][1] =  "images/monImage.png";
    questionnaire[0][2] =  "images/monImage.png";
    questionnaire[0][3] = new Array("0.5","0.8","0.2","0.10");
    questionnaire[0][4] = new Array("0.5","0.8");
     
     
    //QUESTION 2
    questionnaire[1] = new Array();
    questionnaire[1][0] = "Question 2 ?";
    questionnaire[1][1] = "images/monImage.png";
    questionnaire[1][2] =  "images/monImage.png";
    questionnaire[1][3] = new Array("Reponse 1","Reponse 2","Reponse 3","Reponse 4");
    questionnaire[1][4] = "Reponse 4";
     
     
    //QUESTION 3
    questionnaire[2] = new Array();
    questionnaire[2][0] = "Question 3 ?";
    questionnaire[2][1] = "images/monImage.png";
    questionnaire[2][2] = "http://laurepouliquen.fr/lp/wp-content/uploads/2010/11/alcool.jpg";
    questionnaire[2][3] = new Array("Reponse 1","Reponse 2","Reponse 3","Reponse 4");
    questionnaire[2][4] = "Reponse 1";
     
     
    function get_checked(){
    	var checks= new Array();
    	var inputs = document.getElementsByTagName('input');
    	for (i = 0; i<  inputs.length ; i++){
    		if (inputs[i].checked){
    			checks.push(inputs[i].value);
    		}
    	}
    	return checks;
    }
     
     
    function compare(index){
    checks = get_checked();
    var compteur_bonne_reponse = 0;
    for (i = 0; i < checks.length; i++){
          if (in_array(checks[i],questionnaire[index][3])){
                  compteur_bonne_reponse++;
          }
     
    }
     
    if (compteur_bonne_reponse == questionnaire[index][3].length){ alert('juste'); }else { alert('faux');}
     
    }
     
     
    var timer = setTimeout(function(){temp_ecoule();},100000)
     
     
    function show_quizz(index){
     
    clearTimeout(timer);
    timer=setTimeout(function(){temp_ecoule();},10000);
    document.getElementById('affichage').innerHTML = "";
    chrono( 10, "affichage" );
     
    current_index = index;
    document.getElementById("question").innerHTML = questionnaire[index][0];
    document.getElementById("img").src = questionnaire[index][1];
    reponses = document.getElementById("reponses");
    reponses.innerHTML = questionnaire[index][2];
    	for (var i = 0; i < questionnaire[index][3].length ; i++){
    		reponses.innerHTML += "<input type='checkbox' value='"+questionnaire[index][3][i]+"'/>"+questionnaire[index][3][i];
     
    	}
     
    	reponses.innerHTML += "<input type='button' onclick='compare('"+index+"');' value='Valider'>";
     
    }

  7. #47
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    91. reponses.innerHTML += "<input type='button' onclick='compare("+index+");' value='Valider'>";
    le soucis du compare est la.

    Ensuite le in_array n'existe apparemment pas en javascript donc rajoute cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function in_array(p_val) {
        var l = this.length;
        for(var i = 0; i < l; i++) {
            if(this[i] == p_val) {
                rowid = i;
                return true;
            }
        }
        return false;
    }

  8. #48
    Membre à l'essai
    Homme Profil pro
    Sécurité
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Sécurité

    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    Ça marche par contre il répond toujours faux ...
    Par exemple comme tu peut le voir pour la premier question il faut coché 0.5 et 0.8, mais même si on le fait il dit faux ...

  9. #49
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329
    Par défaut
    C'est moi pardon j'ai mal copier un proto, je refais
    colle ça à la place de la fonction in_array
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Array.prototype.in_array = function(p_val) {
    	for(var i = 0, l = this.length; i < l; i++) {
    		if(this[i] == p_val) {
    			return true;
    		}
    	}
    	return false;
    }
    et

    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
     
    function compare(index){
    checks = get_checked();
     
    var compteur_bonne_reponse = 0;
    for (i = 0; i < checks.length; i++){
          if (questionnaire[index][4].in_array(checks[i])){
     
                  compteur_bonne_reponse++;
     
          }
     
    }
     
    if (compteur_bonne_reponse == questionnaire[index][4].length){ alert('juste'); }else { alert('faux');}
     
    }
    Voila ça marche

  10. #50
    Membre à l'essai
    Homme Profil pro
    Sécurité
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Sécurité

    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    Je t'adore
    Juste question de curiosité tu connais le PHP à côté de ça ?

    Sinon tu as une idée pour affiché le compte à rebours sur le page ?

  11. #51
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329
    Par défaut
    Citation Envoyé par valentin45000 Voir le message
    Je t'adore
    Juste question de curiosité tu connais le PHP à côté de ça ?

    Sinon tu as une idée pour affiché le compte à rebours sur le page ?
    Ouai j'en ai déjà entendu parlé !

  12. #52
    Membre à l'essai
    Homme Profil pro
    Sécurité
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Sécurité

    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    C'est toi qui va m'adorer là ... j'ai repéré un soucis
    En fait pour la première question les bonnes réponses sont 0.5 et 0.8 mais si on coche par exemple 0.5, 0.8 et 0.2 alors c'est tout de même bon alors que justement ça doit pas l'être.

  13. #53
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329
    Par défaut
    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
    function compare(index){
    checks = get_checked();
     
    var compteur_bonne_reponse = 0;
    for (i = 0; i < checks.length; i++){
          if (questionnaire[index][4].in_array(checks[i])){
    	  
                  compteur_bonne_reponse++;
    			
          }else{
                  compteur_bonne_reponse--;
          }
     
    }
     
    if (compteur_bonne_reponse == questionnaire[index][4].length){ alert('juste'); }else { alert('faux');}
     
    }

  14. #54
    Membre à l'essai
    Homme Profil pro
    Sécurité
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Sécurité

    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    questionnaire[index][4].in_array is not a function
    if (questionnaire[index][4].in_array(checks[i])){

  15. #55
    Membre à l'essai
    Homme Profil pro
    Sécurité
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Sécurité

    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 13
    Points
    13
    Par défaut
    L'erreur venais de moi, j'avais plusieurs CTRL+Z pour revenir en arrière, j'en avait un de trop, problème sur la fonction in_array
    Résolu

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

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