Avec le clear ça marche impec pour un temps à chaque question, et pour finir (enfin) il faut afficher le temps qu'il reste ...
Donc avoir le décompte mais également visuel c'est possible ?
Avec le clear ça marche impec pour un temps à chaque question, et pour finir (enfin) il faut afficher le temps qu'il reste ...
Donc avoir le décompte mais également visuel c'est possible ?
ben dans la fonction qui boucle dans le setTimeout tu decrémentes une variable que tu affiches ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
J'ai essayer ceci, quand on laisse le temps s'écouler tout va bien mais quand on clique sur un bouton le compteur s'affole ...
Et peut-on transformer se système pour que plusieurs réponses puissent être accepté, j'ai essayer avec les choix qui sont vérifier à chaque clique et qui colle les valeur dans un champs caché mais je me suis retrouvé sans savoir quoi et à coup sur en me compliquant la vie![]()
j'ai du proposer un in_array js quelque part sur le forum ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Oui mais c'est pas aussi simple je voulais pas dire en réponse "1 ou 2" mais plutôt "1 et 2". Si on ne sélectionne que 1 ou a perdu, si on ne sélectionne que 2 on a perdu mais si on sélectionne 1 et 2 on gagne![]()
ben verifies le in_array pour les deux réponses
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Mon problème n'est pas vraiment dans la vérification mais plutôt dans l'envoie des données. Je pense donc qu'il va falloir utilisez des checkbox mais je vois pas du tout comment faire ...
check box en cas de reponses multiples possibles
radio en cas de reponse unique
ou select multiple
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Ici je parle bien de réponse multiple, le but serait :
Si la question comporte plusieurs réponses, alors il faut donner toutes bonnes réponses, mais si elle ne comporte qu'une bonne réponse, on laisse quand même le choix de sélectionner plusieurs réponses mais se sera que si il y la bonne réponse uniquement.
alors checkboxes ou select multiple
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Je préfère les checkbox. Mais pour ici :
Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 for (var i = 0; i < questionnaire[index][3].length ; i++){ reponses.innerHTML += "<input type='button' value='"+questionnaire[index][3][i]+"' onclick=\"compare(\'"+questionnaire[index][3][i]+"\',\'"+questionnaire[index][4]+"\');\" />"; }
On remplace donc button par checkbox mais à la fin on met un bouton, à l'extèrieur du for qui aura en onclick la fonction compare ... mais on lui passe quoi et comme ?
Fonction qui recupère les résultats cochés:
au lieu de générer des boutons, tu génère des checkbox et un bouton qui va valider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 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; }
il va appeler la fonction compare avec l'index courant, dans la fonction compare tu dois appeler la fonction get_checked() qui te renvoi un tableau de réponses cochées, et le comparer avec ton tableau de réponses enregistrées au préalable
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 reponses.innerHTML = ""; for (var i = 0; i < questionnaire[index][2].length ; i++){ reponses.innerHTML += "<input type='checkbox' value='"+questionnaire[index][2][i]+"'/>"+questionnaire[index][2][i]+'<br/>'; } reponses.innerHTML += "<input type='button' onclick='compare('"+index+"');' value='Valider'>";
Merci du temps que tu m'accorde.
Par contre tu passe dans la fonction compare 1 seul élément alors qu'elle est fait pour en recevoir deux :
Et ensuite je comprend vraiment se que fait la fonction que tu as faite (désolé si je suis long à la détentefunction compare(a,b){).
oui, tu dois refais ta fonction compare un seul argument, l'index de la question en cours, ensuite tu fais un get_checked qui va via le dom récupérer tout les inputs de ton html, regarder si leur propriété checked est à True et dans ce cas les insérer dans un tableau qu'il retournera.
ensuite tu fais
voila la plus parts des éléments dont tu as besoin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 fct compare[...] 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');}
Bon je dois être à la ramasse aujourd'hui mais si je fait ça il va y avoir un soucis :
Car l'index transmit (donc la variable a) on le donne ou dans la fonction ? J'aurais bien dit dans al fonction get_checked mais je vois qu'elle ne prend aucun argument ...
Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function compare(a){ 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; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 function compare(index){
Partager