A voir également:
- Qcm javascript
- Telecharger javascript - Télécharger - Langages
- Qcm électricité afpa - Forum Études / Formation High-Tech
- Node.js javascript runtime virus ✓ - Forum Virus
- Javascript echo ✓ - Forum PHP
- QCM Electricité & Electronique - Forum Matériel & Système
5 réponses
jordane45
Messages postés
38308
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
Modifié par jordane45 le 12/01/2015 à 03:44
Modifié par jordane45 le 12/01/2015 à 03:44
Bonjour,
Ton souci vient du fait que tu as utilisé des attributs NAME dans tes éléménts HTML alors qu'avec Javascript... il faut utiliser ID
Cordialement,
Jordane
Ton souci vient du fait que tu as utilisé des attributs NAME dans tes éléménts HTML alors qu'avec Javascript... il faut utiliser ID
<form name="formulaire"> <label>1) Dans quel continent se trouve la France?</label><br/><br/> <input type="checkbox" name="europe" id="europe">Europe<br/><br/> <input type="checkbox" name="asie" id="asie">Asie<br/><br/> <!--etc... -->
Cordialement,
Jordane
jordane45
Messages postés
38308
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
10 janv. 2015 à 00:35
10 janv. 2015 à 00:35
Bonjour
le problème. .. c'est qu'en le faisant en javascript. . N'importe qui pourra voir les réponses en regardant le code source de la page. ..
mais bon. ..quoi qu'il en soit. ..si tu veux de l'aide il faut que tu nous donnes ton code.
le problème. .. c'est qu'en le faisant en javascript. . N'importe qui pourra voir les réponses en regardant le code source de la page. ..
mais bon. ..quoi qu'il en soit. ..si tu veux de l'aide il faut que tu nous donnes ton code.
Le voici:
<html> <head> <meta charset="utf8"> <title>QCM</title> <script language="javascript"> function score() { var s=0; if(document.formulaire.europe.checked) { s=s+2} if(document.formulaire.asie.checked) { s=s-2; } if (document.formulaire.pres3.checked) { s=s+2; } if ((document.formulaire.pres1.checked)||(document.formulaire.pres2.checked)) { s=s-2; } if((document.formulaire.rome.checked)&&(document.formulaire.londres.checked)&&(document.formulaire.newyork.checked)&&(document.formulaire.madrid.checked)) { s=s+8; } if((document.formulaire.paris.checked)||(document.formulaire.lyon.checked)||(document.formulaire.toulouse.checked)) { s=s-2; } if((document.formulaire.paris.checked)&&(document.formulaire.lyon.checked)&&(document.formulaire.toulouse.checked)) {s=s-6; } alert('Votre score est de '+s+' point(s)!'); } </script> </head> <body> <h2><u>QCM:</u></h2> <form name="formulaire"> <label>1) Dans quel continent se trouve la France?</label><br/><br/> <input type="checkbox" name="europe">Europe<br/><br/> <input type="checkbox" name="asie">Asie<br/><br/> <label>2) Qui est l'actuel président de la France?</label><br/><br/> <input type="checkbox" name="pres1">Jacques Chirac<br/><br/> <input type="checkbox" name="pres2">Nicolas Sarkozy<br/><br/> <input type="checkbox" name="pres3">François Hollande<br/><br/> <label>3) Lesquelles parmis ces villes ne sont pas françaises?</label><br/><br/> <input type="checkbox" name="paris">Paris<br/><br/> <input type="checkbox" name="rome">Rome<br/><br/> <input type="checkbox" name="madrid">Madrid<br/><br/> <input type="checkbox" name="londres">Londres<br/><br/> <input type="checkbox" name="toulouse">Toulouse<br/><br/> <input type="checkbox" name="newyork">New York<br/><br/> <input type="checkbox" name="lyon">Lyon<br/><br/> <input type="button" value="Valider" onClick="score();"> </form> </body> </html>
D'accord!Mais si je mets l'attribut "id" ça va changer quoi?
jordane45
Messages postés
38308
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
12 janv. 2015 à 03:16
12 janv. 2015 à 03:16
Tu peux le gérer aussi avec l'attribut name... mais j'ai vraiment moins....
Perso, en utilisant les ID j'aurais fait ainsi :
Une autre solution, cette fois en utilisant les attributs NAME peut être trouvée ici :
https://forums.commentcamarche.net/forum/affich-16037778-faire-un-qcm-avec-javascript#4
=> à adapter à ton questionnaire bien entendu.
Nb : Pour tes questions tu as utilisés des cases à cochées.. alors que tu n'attends qu'une réponse possible... pourquoi ne pas avoir utiliser de bouton radio ?
Nb2 : Tu pourrais aussi "stocker" la valeur des réponses ( le nombre de points) dans l'attribut VALUE des des Inputs ....
De cette façon , en utlisant le même NAME pour ta question 1 ... tu pourrais boucler dessus et récupérer les points directement dans la VALUE
un truc du genre :
Nb3 : Par conte, comme je te l'ai dit précédement.. l'utilisation de javascript pour réaliser un questionnaire implique que n'importe qui peut regarder le code source de la page et savoir quelles sont les bonnes réponses à cocher...
Une des solutions pour éviter ça.. serait de gérer ton questionnaire en PHP...
L'idéal même serait de pouvoir gérer ta liste de questions (et de réponses..et le nombre de points qu'elles valent) dans une Base de données..... ( mais là.. c'est un autre sujet! )
Perso, en utilisant les ID j'aurais fait ainsi :
function score(){ var s=0; // Question 1 var Rep1 = document.getElementById('europe'); var Rep2 = document.getElementById('asie'); if(Rep1.checked){s=s+2;} if(Rep2.checked){s=s-2;} //Question 2 var Pres1 =document.getElementById('pres1'); var Pres2 =document.getElementById('pres2'); var Pres3 =document.getElementById('pres3'); if(Pres3.checked){s=s+2;} if(Pres2.checked){s=s-2;} if(Pres1.checked){s=s-2;} //etc... alert('Votre score est de '+s+' point(s)!'); }
Une autre solution, cette fois en utilisant les attributs NAME peut être trouvée ici :
https://forums.commentcamarche.net/forum/affich-16037778-faire-un-qcm-avec-javascript#4
=> à adapter à ton questionnaire bien entendu.
Nb : Pour tes questions tu as utilisés des cases à cochées.. alors que tu n'attends qu'une réponse possible... pourquoi ne pas avoir utiliser de bouton radio ?
Nb2 : Tu pourrais aussi "stocker" la valeur des réponses ( le nombre de points) dans l'attribut VALUE des des Inputs ....
<label>1) Dans quel continent se trouve la France?</label><br/><br/> <input type="checkbox" value="2" name="Q1" = id="europe">Europe<br/><br/> <input type="checkbox" value="-2" name="Q1" id="asie">Asie<br/><br/> <!--etc... -->
De cette façon , en utlisant le même NAME pour ta question 1 ... tu pourrais boucler dessus et récupérer les points directement dans la VALUE
un truc du genre :
function score(){ var NbQuestions=3; var s=0; for(n=1;n<=NbQuestions;n++){ reponse=s+document.getElementsByName("Q"+n); for (r=0;r<=reponse.length;r++){ if(reponse[r].checked==true){ s=s+ parseFloat(reponse[r].value); } } } alert('Votre score est de '+s+' point(s)!'); }
Nb3 : Par conte, comme je te l'ai dit précédement.. l'utilisation de javascript pour réaliser un questionnaire implique que n'importe qui peut regarder le code source de la page et savoir quelles sont les bonnes réponses à cocher...
Une des solutions pour éviter ça.. serait de gérer ton questionnaire en PHP...
L'idéal même serait de pouvoir gérer ta liste de questions (et de réponses..et le nombre de points qu'elles valent) dans une Base de données..... ( mais là.. c'est un autre sujet! )
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question