QUESTIONNAIRE-QUIZ

routry Messages postés 14 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 14 mai 2007 - 13 mai 2007 à 14:22
MJ92 Messages postés 185 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 14 décembre 2014 - 17 janv. 2010 à 12:15
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42501-questionnaire-quiz

MJ92 Messages postés 185 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 14 décembre 2014
17 janv. 2010 à 12:15
Salut Laffrey,

Perso j'aime bien ce code, ca pourrait "aider" (lol) toutes les personnes qui ne savent plus écrire en Français, mais en langage SMSisé !
Ca devient hallucinant !

Ce qui serait sympa c'est de pouvoir le développer via toute une série de questions-réponses, et de façon qui ne doit pas être lourd au chargement de la page. Pourquoi ne pas l'utiliser avec du SQL ?
cs_marial Messages postés 13 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 5 juin 2007
5 juin 2007 à 15:31
Salut Laffrey!

merci maintenant tout est ok sur Firefox apres avoir validé, le bouton effacer reactualise et recharge le contenu des champs.
Merci c'est pratique maintenant sur IE et FM.

A très bientôt

Marial
Laffrey Messages postés 5 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 19 octobre 2007
5 juin 2007 à 09:29
Salut Marial,
Pour le problème, c'est que Firefox ne recharge pas complètement la page. Il faut lui présiser de rendre à nouveau possible la sélection sur tout les bouttons et d'effacer leurs contenus. Voici ce que cela donne pour la fonction efface() :

function efface() {
for (var i=0; i<nbquestions; i++) {
var proposition = document.getElementsByName("prop");
imput_prop = proposition[i];
imput_prop.disabled = false; //rend possible la modification des données des boutons "prop" (pour Firefox)
imput_prop.value=""; //efface le contenu des bouttons
}
document.getElementById("total").value=""; //remet le boutton "total" à 0 (pour Firefox)
location.reload(); //recharge la page
return(false);

}


Normalement, cela devrait marcher...
cs_marial Messages postés 13 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 5 juin 2007
4 juin 2007 à 18:41
Resalut Laffrey!

Ton code marche impécablement sur Internet Explorer mais lorsque
je l'executer sur Firefox et bonjour le bordel, il ne fonctionne plus
enfin c'est le bouton EFFACER qui ne joue pas son rôle.
Peux-tu me dire à quoi cela est-il dû? c'est tout de même ennuyeux
de voir les visiteurs sur mon site ne pouvant pas profiter de mon Quizz
surtout s'ils navigent avec Mozilla Firefox.
Merci pour ta réponse.
Marial
cs_marial Messages postés 13 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 5 juin 2007
4 juin 2007 à 18:14
Salut Laffrey!

Merci beaucoup pour ton code et je cherchais un Quiz pareil pour l'utilisation sur mon site et le tien m'aidera beaucoup je n'oublierai point de te faire découvrir les bienfaits de ton code.
Marial
routry Messages postés 14 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 14 mai 2007
14 mai 2007 à 22:27
Bonsoir Laffrey,

C'est exactement cela que je désirai, je te remercie infiniment pour tout.
Je t'enverrai prochainement le lien, tu seras très surpris de ce que j'ai pu mettre au point avec ton script.

Merci encore

Cordialement
Routry
Laffrey Messages postés 5 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 19 octobre 2007
14 mai 2007 à 07:57
Salut ROUTRY,

J'ai une idée mais je ne suis pas sur d'avoir tout compris sur ce que tu veut faire :



function CheckInput() {
var rempli = 2
for(i=0; i<nbquestions; ++i){
var proposition = document.getElementsByName("prop");
imput_prop = proposition[i];
if(imput_prop.value == "") {
alert("Tous les champs n'ont pas été remplis!");
rempli--;
return false;
}
}
if (rempli == 2) {
correction();
window.open('popup.htm','popup','width=300,height=200,toolbar=false,scrollbars=false')
}
}



Est-ce cela ???
routry Messages postés 14 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 14 mai 2007
13 mai 2007 à 20:01
Bonsoir Laffrey,

Je te confirme que cela fonctionne et je t'en remercie.

Je test autre chose qui permettrai de déclencher l'ouverture d'une popup UNIQUEMENT quand le resultat s'affiche. Aurais-tu une idée ?
Laffrey Messages postés 5 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 19 octobre 2007
13 mai 2007 à 17:38
Salut ROUTRY,

Voilà la reponses à ta question :



<html>

<head>

<title>Questionnaire</title>


<SCRIPT language="JavaScript">
var nbquestions = 2; //le nombre de questions
var reponse = new Array(2); //le nombre de réponses
reponse[0] = "est"; //les réponses (en partant de 0!!!)
reponse[1] = "suis";
//vous pouvez rajouter : reponse[2] = "lrgelgft"; ... Attention, pensez a modifier nbquestions et reponse !!!


function CheckInput() {
var rempli = 2
for(i=0; i<nbquestions; ++i){
var proposition = document.getElementsByName("prop");
imput_prop = proposition[i];
if(imput_prop.value == "") {
alert("Tous les champs n'ont pas été remplis!");
rempli--;
return false;
}
}
if (rempli == 2) {
correction();
}
}


function correction() {
var score = 0;
for (var i=0; i<nbquestions; i++) {
var proposition = document.getElementsByName("prop");
imput_prop = proposition[i];
if (imput_prop.value == reponse[i]) {
score++; //augmente le score d'1 point
var images_vrai = document.getElementsByName("vrai");
img_vrai = images_vrai[i];
img_vrai.style.display="inline"; //affiche l'image "vrai"
var solution = document.getElementsByName("solution");
imput_solution = solution[i];
imput_solution.value = "("+reponse[i]+")"; //affiche la solution
imput_solution.style.display = "inline"; //affiche le bouton "solution"
imput_solution.style.color = "#00CC00"; //colore le texte en vert
}
else {
var images_faux = document.getElementsByName("faux");
img_faux = images_faux[i]
img_faux.style.display="inline"; //affiche l'image "faux"
var solution = document.getElementsByName("solution");
imput_solution = solution[i];
imput_solution.value = "("+reponse[i]+")"; //affiche la solution
imput_solution.style.display = "inline"; //affiche le bouton "solution"
imput_solution.style.color = "#FF0000"; //colore le texte en rouge
}
}
document.getElementById("total").value= score+"/"+nbquestions; //affiche le score dans le boutton "total"
for (var i=0; i<nbquestions; i++) {
var proposition = document.getElementsByName("prop");
imput_prop = proposition[i];
imput_prop.disabled = true; //empêche la modification des données des boutons "prop"
}
}

function efface() {
location.reload(); //recharge la page
return(false);
}
</script>

</head>



Compléter avec le verbe conjugué :



<form id="questions">
1.Il (être) pompier.


2.Je (être) sous la douche.


</form>
<form id="questionnaire">




Votre score :







</html>



Normalement cela devrait marcher ...
routry Messages postés 14 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 14 mai 2007
13 mai 2007 à 14:22
Bonjour à tous,

Je tente un rajout de verification des champs input par un javascript function CheckInput() avant d'avoir la correction du quiz et cela ne fonctionne pas les champs sont remplis mais j'ai toujours le message "Tous les champs n'ont pas été remplis!"
Merci par avance du petit coup de pouce qui me sera apporté.

<html>

<head>

<title>Questionnaire</title>
<script type="text/javascript">
<!--
function CheckInput() {
for(i=0; i<document.forms[0].elements.length; ++i)
if(document.forms[0].elements[i].value == "") {
alert("Tous les champs n'ont pas été remplis!");
document.forms[0].elements[i].focus();
return false;
}
return true;
}
//-->
</script>
<SCRIPT language="JavaScript">
var nbquestions = 2; //le nombre de questions
var reponse = new Array(2); //le nombre de réponses
reponse[0] = "est"; //les réponses (en partant de 0!!!)
reponse[1] = "suis";
//vous pouvez rajouter : reponse[2] = "lrgelgft"; ... Attention, pensez a modifier nbquestions et reponse !!!

function correction() {
var score = 0;
for (var i=0; i<nbquestions; i++) {
var proposition = document.getElementsByName("prop");
imput_prop = proposition[i];
if (imput_prop.value == reponse[i]) {
score++; //augmente le score d'1 point
var images_vrai = document.getElementsByName("vrai");
img_vrai = images_vrai[i];
img_vrai.style.display="inline"; //affiche l'image "vrai"
var solution = document.getElementsByName("solution");
imput_solution = solution[i];
imput_solution.value = "("+reponse[i]+")"; //affiche la solution
imput_solution.style.display = "inline"; //affiche le bouton "solution"
imput_solution.style.color = "#00CC00"; //colore le texte en vert
}
else {
var images_faux = document.getElementsByName("faux");
img_faux = images_faux[i]
img_faux.style.display="inline"; //affiche l'image "faux"
var solution = document.getElementsByName("solution");
imput_solution = solution[i];
imput_solution.value = "("+reponse[i]+")"; //affiche la solution
imput_solution.style.display = "inline"; //affiche le bouton "solution"
imput_solution.style.color = "#FF0000"; //colore le texte en rouge
}
}
document.getElementById("total").value= score+"/"+nbquestions; //affiche le score dans le boutton "total"
for (var i=0; i<nbquestions; i++) {
var proposition = document.getElementsByName("prop");
imput_prop = proposition[i];
imput_prop.disabled = true; //empêche la modification des données des boutons "prop"
}
}

function efface() {
location.reload(); //recharge la page
return(false);
}
</script>

</head>



Compléter avec le verbe conjugué :



<form id="questions">
1.Il (être) pompier.


2.Je (être) sous la douche.


</form>
<form id="questionnaire">




Votre score :







</html>
Rejoignez-nous