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 :
Le problème est le suivant :
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'); }
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 !
Partager