Bonjour,
En m'inspirant du tuto de siddh, je souhaite mettre à jour plusieurs champs de formulaire en fonction du choix fait dans une dropdown. Voilà mon code :
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
 
function go(){
				UpdateName();
				UpdateCustomer();
			}
			/**
			* This method will change the project name in the textbox according to the selected project.
			*/
			function UpdateName(){
				getXhr();
				// On défini ce qu'on va faire quand on aura la réponse
				xhr.onreadystatechange = function(){
				// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
					if(xhr.readyState == 4 && xhr.status == 200){
						NewHTMLCode = xhr.responseText;
						alert(xhr.responseText);
				// On se sert de innerHTML pour rajouter les options a la liste
						document.getElementById('Name').innerHTML = NewHTMLCode ;
					}
				}
 
				// Ici on va voir comment faire du post
				xhr.open("POST","ModifyProject-FieldUpdate.php",true);
				// ne pas oublier ça pour le post
				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				// ne pas oublier de poster les arguments
				// ici, l'id du projet
				sel = document.getElementById('Project');
				projectid = sel.options[sel.selectedIndex].value;
				xhr.send('ProjectID='+projectid+'&FieldNumber=1');
			}
			/**
			* This method will change the default customer in the Customer selection dropdown according to the selected project.
			*/
			function UpdateCustomer(){
				getXhr();
				// On défini ce qu'on va faire quand on aura la réponse
				xhr.onreadystatechange = function(){
					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
					if(xhr.readyState == 4 && xhr.status == 200){
						NewHTMLCode = xhr.responseText;
												// On se sert de innerHTML pour rajouter les options a la liste
						document.getElementById('Customer').innerHTML = NewHTMLCode ;
					}
				}
 
				// Ici on va voir comment faire du post
				xhr.open("POST","ModifyProject-FieldUpdate.php",true);
				// ne pas oublier ça pour le post
				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				// ne pas oublier de poster les arguments
				// ici, l'id du projet
				sel = document.getElementById('Project');
				projectid = sel.options[sel.selectedIndex].value;
				xhr.send('ProjectID='+projectid+'&FieldNumber=2');
			}
Le problème est le suivant :

La seconde fonction appelée par go() s'execute correctement (grâce à votre aide d'ailleurs, merci encore ) mais la première ne s'execute pas : en insérant des alert je me suis rendu compte que le programme ne rentrait pas dans le
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if(xhr.readyState == 4 && xhr.status == 200)
...

Avez vous une idée de solution ? Peut-être suis en train de faire fausse route, le fonction go appelée au changement de choix d'une liste deroulante va elle meme appeler une douzaine de fonctions qui mettront chacune à jour une partie de formulaire... Peut être y'a t'il une meilleure façon de proceder ?

Merci !