Amélioration de script

charlieddr Messages postés 4 Date d'inscription samedi 1 janvier 2011 Statut Membre Dernière intervention 1 janvier 2011 - 31 déc. 2010 à 22:46
charlieddr Messages postés 4 Date d'inscription samedi 1 janvier 2011 Statut Membre Derniè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)
{


treeNode=treeNode.nextSibling;
//alert("treeNode is:" +treeNode.xml);

// 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 //


/*
alert (TESTCK1.innerText);
alert (TESTCK2.innerText);
alert (TESTCK3.innerText);
alert (TESTCK4.innerText);
alert (TESTCK5.innerText);

*/


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)
{

if (!iMontrerBoutonScore) obj.style.display = "none";
else
{
obj.style.display = "";
BoutonSuivant.style.display="none";
}

}

//*************************************************************************

function affiche()
{



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();
*/
}



var ms="";
ms+=parent.msec;
parent.msec++;


document.FTEMPS.ZoneTemps.value= parent.minutes + " : " + ms;
document.cookie="mns=" + parent.minutes + ";secs=" + ms + ";"


}


</SCRIPT>
<TITLE> QUESTIONNAIRE </TITLE>




</HEAD>


<XML ID="dsoInventaire" SRC="TOXML1.xml"></XML>



Question













<form name="tb1" >





























</form>


<!-- Boutons de navigation -->










,
Durée de l'épreuve:
<form name= "FTEMPS">

minutes écoulées
</form>







</HTML>


Score.html: <html>

<head>
<meta http-equiv ="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>New Page 1</title>
</head>





















Votre score:



<SCRIPT LANGUAGE ="JAVASCRIPT">

document.write(parent.score);

</SCRIPT>

points sur un total de

<SCRIPT LANGUAGE="JAVASCRIPT">

document.write(parent.NombreQuestions);

</SCRIPT>




[CorrigeTest.htm Voir le corrigé]




</html>

Merci à vous.

1 réponse

charlieddr Messages postés 4 Date d'inscription samedi 1 janvier 2011 Statut Membre Dernière intervention 1 janvier 2011
1 janv. 2011 à 16:44
Voici le script du bouton suivant





Je voudrai un bouton précédent.merci
0
Rejoignez-nous