charlieddr
Messages postés4Date d'inscriptionsamedi 1 janvier 2011StatutMembreDernière intervention 1 janvier 2011
-
31 déc. 2010 à 22:46
charlieddr
Messages postés4Date d'inscriptionsamedi 1 janvier 2011StatutMembreDernière intervention 1 janvier 2011
-
1 janv. 2011 à 16:44
Bonjour,
Je posséde un script (libre)pour un QCM mais le soucis,le concepteur ne soutient plus son script.
Il est en deux parties, le test (liste.html) et score.html.
Dans ce script:
1) je souhaiterai y ajouter un bouton "précédent" afin de revenir en arrière sur les questions du QCM avant de valider le test.
2) Concernant l'affichage du score je souhaiterai modifier celui-ci.Je voudrai connaître le nombre de bonnes réponses cochées (= +1 pt),le nombres de mauvaises réponses cochées.(= -1/3 pt).Afin d'afficher une note sur 20
Voilà le script:
Liste.html
<HTML>
<! xmltest -->
<HEAD>
<SCRIPT LANGUAGE ="JAVASCRIPT">
/* script written by olives jean-michel
jmolives@hotmail.com
*/
var id= null;
var iMontrerBoutonScore=0;
var QuestionNumero=1;
var ReponseNumero =0;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// function qui utilise le DOM pour atteindre les attributs
function ShowAttributes()
{
// variable qui permet de compter les numeros
var AttributNumero=0;
// compteur des reponses
ReponseNumero=0;
// si =0 , la question est fausse
var iScoreSurPage =1;
Document=dsoInventaire.XMLDocument;
//alert( Document.documentElement.childNodes(QuestionNumero-2).text);
//alert( " question numero " + (QuestionNumero-2));
var items=Document.documentElement.childNodes(QuestionNumero-2)
// la question -- ne nous interesse pas
var treeNode=items.firstChild;
//alert("firstchild is " + treeNode.xml);
// les reponses: voir si elles sont vraies ou fausses
while(treeNode!=items.lastChild)
{
// degager l'attribut
var att=treeNode.attributes;
//alert("texte de l'attribut" + att.getNamedItem("BR").nodeValue);
var Reponse =att.getNamedItem("BR").nodeValue
// examiner si la bonne case a ete cochee
//if((document.TB1.C1[AttributNumero].checked)&& Reponse="1") || (!document.LIVREINVENTAIRE2.C1[AttributNumero].checked)&& Reponse="0"))
if(((document.tb1.C1[AttributNumero].checked) && Reponse=="1") ||( (!document.tb1.C1[AttributNumero].checked) && Reponse=="0"))
{
//alert("bonne reponse sur question numero " + AttributNumero);
}
else
{
//alert("mauvaise reponse sur question numero " + AttributNumero);
iScoreSurPage =0;
}// fin du if
// passer a l'attribut suivant
AttributNumero++;
}// fin du while
// examiner les resultats de la feuille
if (iScoreSurPage==1)
{
parent.score++;
//alert("bonnes reponses sur la page");
// remettre le compteur score de la page a 1
iScoreSurPage =1;
}// fin du (if (iScoreSurPage ==1))
}
//******************************************************************************
function CacheCheckVide( )
{
////////////////////////////////////////////////////////////
// Si un checkbox est vide //
// Le masquer //
Document=dsoInventaire.XMLDocument;
var items=Document.documentElement.childNodes(QuestionNumero-1)
// la question -- ne nous interesse pas
var treeNode=items.firstChild;
//alert("firstchild is " + treeNode.xml);
// les reponses: voir si elles sont vraies ou fausses
while(treeNode!=items.lastChild)
{
// incrementer les reponses
ReponseNumero++;
treeNode=treeNode.nextSibling;
//alert("treeNode is:" +treeNode.text);
//alert( 'Reponse numero ' + ReponseNumero);
// verifier si la reponse est vide, si oui supprimer le checkbox
if((""==treeNode.text))
{
//alert('reponse vide= ' + ReponseNumero);
switch(ReponseNumero)
{
case 1: ANSWER1.style.display = "none"; break;
case 2: ANSWER2.style.display = "none"; break;
case 3: ANSWER3.style.display = "none"; break;
case 4: ANSWER4.style.display = "none"; break;
case 5: ANSWER5.style.display = "none"; break;
}// fin de switch (ReponseNumero)
}// fin de if(treeNode.xml="")
}// fin du while
ReponseNumero=0;
/*
if ((TESTCK5.innerText)=="")
{
ANSWER5.style.display = "none";
//alert( "Le message devrait etre vide ,message=none");
}
else
{
ANSWER5.style.display = "";
//alert("lemessage devrait etre ecrit message=''");
}
*/
}
//******************************************
// fonction qui fait apparaitre le bouton score lors de la derniere question
function disappear(obj)
{
var res;
QuestionNumero++;
QN.innerText=QuestionNumero;
if( (dsoInventaire.recordset.EOF))
{
dsoInventaire.recordset.moveLast();
}
// Montrer le bouton score pour la derniere question
if (dsoInventaire.recordset.RecordCount==QuestionNumero)
{
// montrer le bouton score
iMontrerBoutonScore=1;
disappear(BoutonScore);
}
if( (dsoInventaire.recordset.BOF))
{
dsoInventaire.recordset.moveFirst();
}
// voir lequel a ete clique:
ShowAttributes();
}// fin function affiche()
//****************************************************
// fonction qui reinitalise tous les boutons radios
function Reinitialise()
{
var combien= document.tb1.C1.length;
// voir lequel a ete clique:
var lequel;
for ( x=0; x<combien;x++)
{
document.tb1.C1[x].checked=false;
}
//faire reapparaitre tous les boutons
ANSWER1.style.display = "";
ANSWER2.style.display = "";
ANSWER3.style.display = "";
ANSWER4.style.display = "";
ANSWER5.style.display = "";
}// fin function Reinitialise()
var temps=0;
//)))))))))))))))))))))))))))))))))))))
function depart()
{
id=setInterval("Montre()",1000);
}
//****************************************
function stopp()
{
window.clearInterval(id);
}
//var parent.msec=0;
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function Montre()
{
if( parent.msec>59)
{
parent.msec=0;
parent.minutes++;
/* Pour changer le temps de l'epreuve, modifier ici
if(parent.minutes>=1)
parent.MontrePageScore();
*/
}