Table des matières

+Objectif général

+Objectifs terminaux

-Objectifs intermédiaires

Questionnaire à choix multiples de base


Pour faciliter les explications, nous allons employer une convension. Le texte qui sera écrit en noir sera du code HTML, celui en vert sera du javascript et celui en rouge sera soit du javascript soit du HTML à changer en fonction de vos besoins. Ce qui est écrit en bleu ce sont des commentaires pour vous guider lors de la modification de votre questionnaire.


Code Source

Comme vous pouvez le constatez, j'ai inséré des commentaires qui vont vous aider à personnaliser votre questionnaire. C'est à ces endroits que vous allez définir les variables qui vont être utilisées lors des fonctions. Ces variables vont s'ajustées automatiquement à l'intérieur des fonctions, vous ne devez donc pas aller modifier ces fonctions.

<!-- Hide from JavaScript-Impaired Browsers
ctr=0;
/*
Mettre le titre que vous voulez
qui apparaisse dans la page
*/
ttl="Que savez-vous sur le Javascript ?";
/*
Quel sera le resultat final */
psco=100;
/*
Points enleves pour chaque mauvaise reponse */
wrans=20;
/*
Points enleve pour chaque non-reponse */
noans=20;
/*
Entrer le nombre de question que vous voulez
qu'il y ait dans votre questionnaire
*/
nr=5;
/*
Entrer ici les questions que vous desirer
pour le test.
Si vous desirer plus de 5 questions, vous
n'avez qu'a rajouter ques[5], ques[6], etc.
Mais assurez-vous que le "nr" precedant corresponde
bien au nombre de questions que vous voulez.
NOTE: do not use any double
quote signs in your questions. If you
need them, use the HTML &quot; instead.
Or, single quote signs may be safely used
. */
ques=new Array();
ques[0]
="Le javascript est un language oriente :";
ques[1]="Quelles sont les utilitees du javascript ?";
ques[2]="Je ne sais pas trop";
q
ues[3]="J'ai hate que ca finnisse";
ques[4]="Enfin la derniere question";
//
Vous pouvez en rajouter autant que vous le voulez
/*
Vous devez entrer ici le choix correspondant aux
bonnes reponses (a, b, c, d, or e) dans l'ordre
correspondant aux questions. Pour cet exemple,
l
'ordre des bonnes reponses etait "abcde" */
cor="
abcde";
/*
When entering your own answers, do not
use any double quote signs in your
answers. Instead, use the HTML &quot;
so the JS will not get confused.
*/



Voici donc le script de ce questionnaire :

ns="0123456789"
ls="abcde";
astr="";
ack=new Array();
for (var i=0;i<nr;i++){
ack[i]=(nr*5)+1;
}
function lightIt(){
document.images[flg+ad].src="nr/rbl.gif";
}
function dimIt(){
if (ack[Math.floor(flg/5)]!=flg){
document.images[flg+ad].src="nr/rbd.gif";
}
function dumpIt(){
if (ack[Math.floor(flg/5)]==flg){
document.images[ack[Math.floor(flg/5)]+ad].src="nr/rbd.gif";
ack[Math.floor(flg/5)]=(nr*5)+1;
}
else{
if (ack[Math.floor(flg/5)]!=flg&&ack[Math.floor(flg/5)]!=(nr*5)+1){
document.images[ack[Math.floor(flg/5)]+ad].src="nr/rbd.gif";
}
document.images[flg+ad].src="nr/rbl.gif";
ack[Math.floor(flg/5)]=flg;
}
function ckSco(){
document.images[ad+(nr*5)].src="nr/cwf2.gif";
setTimeout('document.images[ad+(nr*5)].src="nr/cwf0.gif"',1000);
for (var i=0;i<nr;i++){
u=cor.charAt(i);
v=ls.indexOf(u)+(i*5);
document.images[ad+v].src="nr/gbl.gif";
}
sco=psco;
for (var i=0;i<nr;i++){
if (ack[i]==(nr*5)+1){
sco-=noans;
}
else{
u=cor.charAt(i);
v=ls.indexOf(u)+(i*5);
sco=(v==ack[i]?sco:sco-wrans);
}
sco=(sco<0?0:sco); // prevent minus score
scos=""+sco;
while (scos.length<3){
scos="0"+scos;
}
document.images[ad+(nr*5)+1].src="nr/yts.gif";
ctr=ad+(nr*5)+2;
for (var i=0;i<3;i++){
nj=ns.indexOf(scos.charAt(i));
document.images[ctr].src="nr/"+nj+".gif";
ctr++;
}
function litbut(){
document.images[ad+(nr*5)].src="nr/cwf1.gif";
}
function dimbut(){
document.images[ad+(nr*5)].src="nr/cwf0.gif";
}

/*
This little routine is simply used to count the
number of images you may place on your web page
prior to the radio buttons. Just makes the routine
independent of how you lay your page out.
*/
var ad = 0;
function getImgAdd(){
for (var i=0;i<20;i++){
if (document.images[i].src.indexOf("rbd.gif")>-1){
ad=i;
i=20;
}
// End Hiding -->
</SCRIPT>


Ce qui est en vert consiste à illustrer le langague de programmation JavaScript. Ce que vous venez de voir sont les définitions des fonctions qui seront utilisées tout au long du codage.



</HEAD>
<BODY BGCOLOR="#ffffff" BACKGROUND="../../image/bg1.JPG" LINK="#0080c0"
ALINK="#0080c0" VLINK="#0080c0">

<TD WIDTH="60%" VALIGN="TOP">
<P><CENTER><IMG SRC="../../image/a1_sm.GIF" WIDTH="48" HEIGHT="48"
ALIGN="BOTTOM" BORDER="0" NATURALSIZEFLAG="3"><B><U><FONT COLOR="#000079"
SIZE="+2">
Questionnaire a choix multiples de base</FONT></U></B></CENTER></P>

<P><HR ALIGN=LEFT></P>

<P>&nbsp;<!-- Vous pouvez ecrire ici toutes les
instructions ou images que vous desirez.
Les instructions se veuleut simplement un
guide, vous etes libres de las garder ou de
les modifier
. --></P>

<P><TABLE BORDER="0" WIDTH="486" CELLSPACING="2" CELLPADDING="0">
<TR>
<TD>
<B><FONT COLOR="#ff0000" SIZE="+1" FACE="Helvetica,Arial,Geneva">Instructions:</FONT></B><FONT
SIZE="+1" FACE="Helvetica,Arial,Geneva"> <BR>
1. Cliquez sur le bouton rouge pour verifier votre reponse
et obtenir votre resultat.
<BR>
2. Si vous ne connaissez pas la reponse,
<B><I>essayez en une.
</I></B> <BR>
3. Si vous ne pesez pas sur le bon bouton, tout va sauter.
<BR>
4. Vous pouvez modifier vos reponses en tout temps.
<BR>
5. Lorsque vous aurez termine cliquez sur le bouton rouge
au bas de la page. Votre resultat va apparaitre au bas de la
page et pour toutes les bonnes reponses le bouton
de la question va s'allume en vert.
</FONT><HR ALIGN=LEFT
NOSHADE></TD>
</TR>
</TABLE></P>

<P><SCRIPT LANGUAGE="JavaScript"><!-- Hide from JavaScript-Impaired Browsers
document.write('<TABLE BORDER=0 CELLPADDING=2'
+' CELLSPACING=0 WIDTH=486><TR><TD COLSPAN=2 '
+'ALIGN=CENTER><FONT SIZE=4 FACE="Helvetica,A'
+'rial,Geneva" COLOR=BLUE><B>'+ttl+'</B></FON'
+'T></TD></TR><TR>');
for (var i=0;i<nr;i++){
document.write('<TD COLSPAN=2 VALIGN=TOP><HR'
+' NOSHADE><FONT SIZE=4 FACE="Helvetica,Aria'
+'l,Geneva">'+ques[i]+'</FONT></TD></TR>')
for (var j=0;j<5;j++){
document.write('<TR><TD><A HREF="mctest.htm'
+'" onMouseOver="flg='+((i*5)+j)+';lightIt('
+');return true" onMouseOut="flg='+((i*5)+j)
+';dimIt();return true;" onClick="flg='
+((i*5)+j)+';dumpIt();return false;"><IMG S'
+'RC="nr/rbd.gif" WIDTH=15 HEIGHT=15 BORDER'
+'=0></TD><TD ALIGN=LEFT><FONT SIZE=4 FACE='
+'"Helvetica,Arial,Geneva">'+ans[(i*5)+j]
+'</FONT></TD></TR>');
}
}
document.write('<TR><TD COLSPAN=3 ALIGN=CE'
+'NTER><A HREF="mctest.htm" onClick="ckSco'
+'();return false;" onMouseOver="litbut();'
+'return true;" onMouseOut="dimbut();retur'
+'n true;"><IMG SRC="nr/cwf0.gif"'
+' WIDTH=69 HEIGHT=45 BORDER=0 NAME="but">'
+'<P><IMG SRC="nr/10.gif" WIDTH=120 HEIGHT'
+'=10 BORDER=0><IMG SRC="nr/10.gif" WIDTH='
+'7 HEIGHT=10 BORDER=0><IMG SRC="nr/10.gif'
+'" WIDTH=7 HEIGHT=10 BORDER=0><IMG SRC="n'
+'r/10.gif" WIDTH=7 HEIGHT=10 BORDER=0></T'
+'D></TR></TABLE>');
getImgAdd();
// End Hiding --></SCRIPT>
<!-- Vous pouvez
entrer ici tout ce que vous desirez
. --></P>

</BODY>
</HTML>


Pour que cet exemple fonctionne, vous devez avoir en main tous les fichiers images qui l'accompagne, si cela vous intéresse, voici l'adresse où vous pourrez les trouver : http://www.infohiway.com/javascript/mctest.htm



Vous avez toutes les informations pour réussir à faire un menu dont les images changent lorsque la souris passe dessus. Si vous avez des questions, n'hésitez pas à nous les poser dans le forum de discussion!