Bonjour mesdames messieurs les développeurs,

j'utilise :
-windows vista/XP
-wamp (apache,php,mysql)
-IE7
-freebox
-librarie prototype.js


Je poste ce message car je suis face à un problème pour lequel je n'ai pu trouver l'ébauche d'une réponse sur le web.

J'essaye de développer une page dans laquelle le client va pouvoir entrer des données dans un <input type="text">. Ces données sont enregistrées avec l'ID du client dans une base MySql, via un AJAX.REQUEST. Ce dernier fait donc appel à un script php exécutant une requête SQL d'update. Ce partie fonctionne parfaitement.

Le problème vient d'un autre AJAX.REQUEST donc l'objectif est de remplir les <input type="text"> lors du load de la page. Lors du premier load, les données insérées dans les input sont bien celles de la base de données. Mais, si le client modifie ces valeurs et recharge la page sur la même session du navigateur internet, les données insérées dans les inputs sont celles du premier load, alors que la base de données a bien été updatée. Evidemment, en ouvrant une nouvelle session Internet Explorer, les dernières données sont bien affichées.

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
<script src=\"http://marcoletpierre.dyndns.org/Functions/PrototypeJS/Prototype.js\" type=\"text/javascript\"></script>
<script type=\"text/javascript\">
 
Event.observe(window, 'load', init, false);
 
	function init(){
		new Ajax.Request(
			'GetProfileWithID.php',{
				method:'get',
				parameters: {MemberID2: $MemberID},
			        onSuccess: function(transport) {
					var tabl=transport.responseText.evalJSON();
					$('Name').value=tabl['Members_Name'];
					$('Surname').value=tabl['Members_Surname'];
			        }
			}
		);
 
	}
	function ChangeName(){
		new Ajax.Request(
			'UpdateProfile.php',{
				method:'get',
				parameters: {MemberID2: $MemberID, Name2: $('Name').value ,Surname2: $('Surname').value}
			}
		);
	}
</script>
En essayant de cerner la cause de mon tourment, j'ai remarqué que si, après que la page ait été chargée, je remplacais dans la function 'init' ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$('Name').value=tabl['Members_Name'];
$('Surname').value=tabl['Members_Surname'];>
par cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$('Name').value='Hello';
$('Surname').value='World';>
lorsque la page est rechargée, les valeurs de l'input sont bien 'Hello' et 'World'. Ce qui permet de conclure que la fonction 'init' est exécutée sans que la variable 'tabl' ne soit véritablement rechargée.
Donc, comment dois-je m'y prendre pour que cette variable soit rechargée à chaque load de la page avec les données renvoyées par la requête SQL du script php visé?

J'espère avoir ne pas avoir été trop long ou trop confus, et j'espère également ne pas poser une question dont la réponse figure déjà quelque part (même si j'ai déja beaucoup cherché). Et d'autre part, je m'excuse d'avance si passe à coté d'une évidence, car je suis un débutant de quelques jours en javascript et ajax.

Merci d'avance pour vos réponses.

Pierre