Trucsweb.com

Forum de discussion

 Forum « Programmation Javascript » (archives)

variable indéfinie

Envoyé: 19 juillet 2004, 6h30 par George.Habitbol


Bonjour...
Je cherche à faire un QCM sur mon site, mais j'ai un petit problem:

mon QCM est généré à l'écran via une fonction Javascript et à partir d'un tableau contenant la question, les propositions, la reponse, etc... (en fait, chaque case du tableau reçoit une structure de données)
voici un exemple:

function question(num,Quest,Rep,TabProp,TabAide)
{this.num=num;
this.Quest=Quest;
this.Rep=Rep;
this.TabProp=TabProp;
this.TabAide=TabAide;
}

var Qcm=new Array(
new question(1,"En termes de vitesse de lecteur/graveur CD, le standard 1x correspond à :",4,new Array("1 Mo/sec","33.6 Kbits/sec","1200 Kbits/sec","300 Ko/sec", "150Ko/sec"),new Array("c' est calculé en Kilo octés par secondes"))
);

j'ai premièrement écrit une fonction JS générant tout le QCM à l'écran, là pas de probleme, ça marche. Mais j'aimerai que les questions soit affichées une par une, càd pouvoir passer d'une question à l'autre en cliquant sur un bouton.
voici le code de ma page:

<script language="JavaScript">
var Num=0;

//fonction générant la question à partir d'une case du tableau Qcm

function QCMgen2(i)
{Num=i;
var j;
document.clear();
document.write('<Form name="question'+Qcm[Num].num+'">');
document.write('<br><u><b>Question '+Qcm[Num].num+' :</b></u><br>');
document.write(Qcm[Num].Quest+'<br>');
for (j=0;j<Qcm[Num].TabProp.length;j++)
{document.write('<br><input type="radio" name="Q'+Qcm[Num].num+'">'+Qcm[Num].TabProp[j]+'</input>');
}
document.write('<br><input type=\"button\" value=\"valider\" onclick=parent.avatar.reponse(parent.QCM.document.forms.question'+Qcm[Num].num+'.Q'+Qcm[Num].num+'['+Qcm[Num].Rep+']) onMouseOver=parent.avatar.regarder(\"down\",\"d\",\"left\",\"a\") onMouseOut="parent.avatar.Centrer()"></input> ');
document.write('<input type=\"button\" value=\"aide\" onclick=aide(Qcm['+Num+'].TabAide)></input><br>');
document.write('<BR><input type=\"button\" value=\"précédent\" onclick=Preced(Num); ></input>');
document.write('<input type=\"button\" value=\" suivant \" onclick=suivant(Num); ></input><br>');
document.write('<input type=\"button\" value=\" Valeur \" onclick=alert(Num); ></input><br>');

document.write('</form><br>');
}


function Preced(N)
{if (N>0)
{N--;
QCMgen2(N);
}
else N=0;
}

function suivant(N)
{if (N<Qcm.length-1)
{N++;
QCMgen2(N);
}
else N=Qcm.length-1;
}

</script>
</HEAD>

<BODY Bgcolor="#ffffff" text="#000000" link="#00ff00" alink="#00ff00" vlink="#00ff00" >
<script src="C:\siteavatar\js\FonctionPageAvatar.js"></script>
<Script>
QCMgen2(Num);
</Script>
</BODY>

et voici le problem que je rencontre:
au chargement de la page, pas de pb, la première question s'affiche, si je clique une première fois sur le bouton suivant, toujours pas de pb, la question 2 est affichée. Mais si je clique encore une fois pour passer à la question 3, l'erreur suivante intervient: la variable 'Num' est indéfinie.

Comment faire pour pouvoir conserver cette variable? et pourquoi est-elle soudainement indéfinie?

Désolé pour cette loooongue question, et merci d'avance...


Réponses

 sp spRe: variable indéfinie Oznog19/7/2004
 sp spRe: variable indéfinie Oznog19/7/2004
 sp spRe: variable indéfinie George.Habitbol19/7/2004
Aucun médias sociaux
X

Trucsweb.com Connexion

X

Trucsweb.com Mot de passe perdu

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte