Bonjour,

J'ai un p'tit problème avec un formulaire Ajax...

J'ai une liste déroulante, qui sur onchange va appeler 2 fonctions :

OnChange = fontion1();fonction2();

La fonction 1 met a jour 1 div
La fonction 2 met a jour le 2ème div

Si je mets un alert de l'id de la fonction 1, ça fonctionne, et si je commente l'alert, ca ne fonctionne plus (seul la 2ème fonction s'execute!!!)

Donc je me demande si je ne dois pas mettre une tempo quelque part ?!? et je ne sais pas comment faire...

Enfin bref, en deux mots : AU SECOURS !!!


Je vous mets le code si vous pouvez m'aider


Les fonctions :
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
 
		function SelectLt()
		{
			getXhr(); // On appele la fonction getXhr
 
			// Traitement de la réponse au POST envoyé plus bas
			xhr.onreadystatechange = function () // On défini ce qu'on va faire quand on aura une réponse
			{
				if(xhr.readyState == 4 && xhr.status == 200) // si on a tout reçu et que le serveur est ok
				{
					leselect = xhr.responseText; // On indique que leselect est égal à la réponse xhr
					document.getElementById('lt').innerHTML = leselect; // On se sert de innerHTML pour rajouter les options a la liste lt
				}
			}
 
			// Envois des données par post
			xhr.open("POST","AjaxCreaRgLt.php",true); // On ouvre xhr, on lui indique la méthode POST ainsi que le fichier de destination
			xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier ça pour le post
 
			//On poste les arguments
			sel = document.getElementById('site'); // ici, l'id du site
			idsite = sel.options[sel.selectedIndex].value; // idsite sera égal à la valeur de l'option sélectionnée
			xhr.send("idsite="+idsite); // On envois la variable idsite qui aura la valeur de idsite
 
		}
 
		function SelectAuto()
		{
			getXhr(); // On appele la fonction getXhr
 
			// Traitement de la réponse au POST envoyé plus bas
			xhr.onreadystatechange = function () // On défini ce qu'on va faire quand on aura une réponse
			{
				if(xhr.readyState == 4 && xhr.status == 200) // si on a tout reçu et que le serveur est ok
				{
					leselect = xhr.responseText; // On indique que leselect est égal à la réponse xhr
					document.getElementById('autocom').innerHTML = leselect; // On se sert de innerHTML pour rajouter les options à la liste autocom
				}
			}
 
			// Envois des données par post
			xhr.open("POST","AjaxCreaRgAuto.php",true); // On ouvre xhr, on lui indique la méthode POST ainsi que le fichier de destination
 
			xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier ça pour le post
 
			//On poste les arguments
			sel = document.getElementById('site'); // ici, l'id du local
			idsite = sel.options[sel.selectedIndex].value; // idlocal sera égal à la valeur de l'option sélectionnée
			xhr.send("idsite="+idsite); // On envois la variable idlocal qui aura la valeur de idlocal
 
			//alert (idsite);   // <-- Si c'est décommenté, ça fonctionne !!!
		}

Les div :

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
 
<tr><label><td>Site : </td><td>	<select name='site' id='site' onchange='SelectAuto();SelectLt();'>
												<option value=""></option>
												<?php
                                                                                                $reponse = mysql_query("SELECT sigle FROM site ORDER BY sigle") or die(mysql_error());
                                                                                                while($donnees = mysql_fetch_assoc($reponse))
                                                                                                {
                                                                                                        if ($donnees["sigle"] != $test)
                                                                                                        {
                                                                                                                echo "<option value='".$donnees["sigle"]."'>".$donnees["sigle"]."</option>";
                                                                                                                $test= $donnees["sigle"];
                                                                                                        }
                                                                                                }
                                                                                                ?>
												</select>
											</td>
					</label>
				</tr>
				<tr><label><td>Autocom: </td><td>	<div id='autocom' style='display:inline' >
											<select>
												<option value='-1'>Autocom</option>
											</select>
											</div>
										</td>
				</tr>
				<tr><label><td>Local technique: </td><td>	<div id='lt' style='display:inline' >
											<select>
												<option value='-1'>Local</option>
											</select>
											</div>
										</td>
				</tr>

Merci beaucoup pour votre aide et bonne journée à vous

Mind