Bonjour,

J'aimerai modifier un jeu qui se présente sous la forme d'un questionnaire, qui bien que fonctionnel, présente le défaut de présenter les solutions aux questions après y avoir répondu mais avant de valider les points obtenus à ce jeu.
Par conséquent je souhaiterai que les solutions soient présentées après avoir obtenu les points.
Pour cela j'ai trouver une possibilité en modifiant le fichier JavaScript que voici et qui fait parti de la programmation de ce jeu:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
/* Script utilisant Ajax */
 
// Variables globales.
var qcm = ''; // Dossier du QCM.
var nb_q = 0; // nombre de questions dans le QCM.
var q = 1; // numéro de la question actuelle.
var rep = 0; // numéro de la réponse actuelle.
var fini = 0; // indique si le QCM est terminé (affichage du corrigé.
 
function reception()
{
	if (http_request.readyState == 4 && http_request.status == 200)
	{
		var fichierxml = http_request.responseXML;
 
		if (fini == 1) // Affichage du corrigé.
		{
			var question, image, explic, reponses;
			var xml = fichierxml.getElementsByTagName('question').item(0);
			if (xml.childNodes[0].firstChild) question = xml.childNodes[0].firstChild.data;
			else question = '';
			if (xml.childNodes[1].firstChild) image = xml.childNodes[1].firstChild.data;
			else image = '';
			if (xml.childNodes[2].firstChild) explic = xml.childNodes[2].firstChild.data;
			else explic = '';
			reponses = new Array;
			for (i = 0; i < xml.childNodes[3].childNodes.length; i++)
			{
				reponses[i] = new Array;
				if (xml.childNodes[3].childNodes[i].firstChild)
					reponses[i][0] = xml.childNodes[3].childNodes[i].firstChild.data;
				else
					reponses[i][0] = '';
				reponses[i][1] = xml.childNodes[3].childNodes[i].getAttribute('coul');
			}
 
			// remplissage de la page avec les données lues.
			document.getElementById('c_titre').innerHTML = ':. Correction : Question '+q+'/'+nb_q+' .:';
			var html = '<div id="voir_question">'+question+'</div>';
			if (image != '') html += '<div id="voir_image"><img alt="" src="qcm/'+qcm+'/'+image+'" /></div>';
			if (explic != '') html += '<div id="voir_explic">'+explic+'</div>';
			html += '<div id="voir_reponses">';
			rep = 0;
			for (i = 0; i < reponses.length; i++)
			{
				html += '&gt; <a class="'+reponses[i][1]+'">'+reponses[i][0]+'</a><br />';
			}
			html += '</div>';
			document.getElementById('c_cadre').innerHTML = html;
			if (q > 1) document.getElementById('bout_0').innerHTML = '<a href="javascript:c_prec();">Question précédante</a>';
			else  document.getElementById('bout_0').innerHTML = 'Question précédante';
			if (q < nb_q) document.getElementById('bout_1').innerHTML = '<a href="javascript:c_suiv();">Question suivante</a>';
			else  document.getElementById('bout_1').innerHTML = 'Question suivante';
			return 0;
		}
 
 
		if (fichierxml.getElementsByTagName('bonnesreponses').item(0) != null)
		{
			// Le QCM est fini, on affiche le nombre de bonnes réponses.
			var bonnes_rep = fichierxml.getElementsByTagName('bonnesreponses').item(0).firstChild.data;
			document.getElementById('c_cadre').innerHTML = '<div id="voir_result"><img src="interface/vert.gif" alt="" height="15" width="'+Math.floor(bonnes_rep*200/nb_q)+'" class="no_border_droite" /><img src="interface/rouge.gif" alt="" height="15" width="'+Math.floor((nb_q-bonnes_rep)*200/nb_q)+'" class="no_border_gauche" /><br /><br />Bonnes réponses : '+bonnes_rep+'/'+nb_q+'</div>';
			document.getElementById('c_titre').innerHTML = ':. Résultats .:';
			document.getElementById('bout_1').innerHTML = '<a href="javascript:corrige();">Voir le corrigé</a>';
			return 0;
		}
 
		// On récupère les données de la question.
		var question, image, explic, reponses;
		var xml = fichierxml.getElementsByTagName('question').item(0);
		if (xml.childNodes[0].firstChild) question = xml.childNodes[0].firstChild.data;
		else question = '';
		if (xml.childNodes[1].firstChild) image = xml.childNodes[1].firstChild.data;
		else image = '';
		if (xml.childNodes[2].firstChild) explic = xml.childNodes[2].firstChild.data;
		else explic = '';
		reponses = new Array;
		for (i = 0; i < xml.childNodes[3].childNodes.length; i++)
		{
			if (xml.childNodes[3].childNodes[i].firstChild) reponses[i] = xml.childNodes[3].childNodes[i].firstChild.data;
			else reponses[i] = '';
		}
 
		// remplissage de la page avec les données lues.
		document.getElementById('c_titre').innerHTML = ':. Question '+q+'/'+nb_q+' .:';
		var html = '<div id="voir_question">'+question+'</div>';
		if (image != '') html += '<div id="voir_image"><img alt="" src="qcm/'+qcm+'/'+image+'" /></div>';
		if (explic != '') html += '<div id="voir_explic">'+explic+'</div>';
		html += '<div id="voir_reponses">';
		rep = 0;
		for (i = 0; i < reponses.length; i++)
		{
			html += '<input type="radio" name="rep"'+((i == rep) ? ' checked="checked"' : '')+' onclick="javascript:rep='+i+';" /> '+reponses[i]+'<br />';
		}
		html += '</div>';
		document.getElementById('c_cadre').innerHTML = html;
		document.getElementById('bout_1').innerHTML = '<a href="javascript:suiv();">Valider</a>';
	}
}
 
function envoie_req(req)
{
	// création du XMLHttpRequest et envoie d'une requête.
	if (window.XMLHttpRequest)
	{
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) http_request.overrideMimeType('text/xml');
	}
	else if (window.ActiveXObject)
	{
		try { http_request = new ActiveXObject("Msxml2.XMLHTTP") }
		catch (e)
		{
			try { http_request = new ActiveXObject("Microsoft.XMLHTTP") }
			catch (e) {}
		}
	}
	if (!http_request) alert('Erreur : Impossible d'initialiser XMLHttpRequest.');
 
	http_request.onreadystatechange = reception;
	http_request.open('POST', 'voir_ajax.php', true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 
	http_request.send(req);
}
 
function init(nb_questions, dossier_qcm)
{
	nb_q = nb_questions;
	qcm = dossier_qcm;
	document.getElementById('bout_1').innerHTML = 'Valider'; // On masque le bouton jusqu'à reception des données.
	envoie_req(null);
}
 
function suiv()
{
	q ++;
	document.getElementById('bout_1').innerHTML = 'Valider'; // On masque le bouton jusqu'à reception des données.
	envoie_req('rep='+rep);
}
 
function corrige()
{
	q = 1;
	fini = 1;
	document.getElementById('bout_1').innerHTML = ''; // On masque le bouton jusqu'à reception des données.
	envoie_req('q='+q);
}
 
function c_suiv()
{
	q ++;
	document.getElementById('bout_0').innerHTML = 'Question précédante'; // On masque le bouton jusqu'à reception des données.
	document.getElementById('bout_1').innerHTML = 'Question suivante'; // On masque le bouton jusqu'à reception des données.
	envoie_req('q='+q);
}
 
function c_prec()
{
	q --;
	document.getElementById('bout_0').innerHTML = 'Question précédante'; // On masque le bouton jusqu'à reception des données.
	document.getElementById('bout_1').innerHTML = 'Question suivante'; // On masque le bouton jusqu'à reception des données.
	envoie_req('q='+q);
}
Mon idée consisterait à modifier la ligne 64 que voici:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
document.getElementById('bout_1').innerHTML = '<a href="javascript:corrige();">Voir le corrigé</a>';
>Voir le corrigé</a> devrait être remplacé par:
>Validez vos points</a>
ainsi que d'autres éléments que je ne maîtrise pas sur cette ligne pour qu'en cliquant sur "Validez vos points", cela conduirait sur une page PHP afin valider les points obtenus en base de donnée.
Ensuite lorsque les points sont validés en base de données par cette page PHP il se produirait un retour au fichier JavaScript à la ligne 142 (function corrige() ) pour voir alors la solution ou corrigé.
En résumé, il faudrait intercaler la validation des points entre le moment où le joueur à répondu à l'ensemble des questions et le moment où il peut voir la solution.

Merci d'avance pour votre aide.
A+