Bonjour,
dans un formulaire d'inscription, je fait choisir une région , ce qui affiche dans une deuxieme liste la liste des departements.

Ceci marche très bien mais j'essaye que lorsque l'utilisateur choisi un département, la liste des villes s'affiche dans une troisieme liste. Ceci ne marche pas, j'ai une erreur javascript.

Voici le code javascript de ma page:

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
<script type='text/javascript'>
			var xhr = null;
 
			function getXhr(){
				if(window.XMLHttpRequest) // Firefox et autres
				   xhr = new XMLHttpRequest();
				else if(window.ActiveXObject){ // Internet Explorer
				   try {
			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
			            } catch (e) {
			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
			            }
				}
				else { // XMLHttpRequest non supporté par le navigateur
				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
				   xhr = false;
				}
			}
 
			/**
			* Méthode qui sera appelée sur le click du bouton
			*/
			function go(){
				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){
						leselect = xhr.responseText;
						// On se sert de innerHTML pour rajouter les options a la liste
						document.getElementById('departement').innerHTML = leselect;
					}
				}
 
				// Ici on va voir comment faire du post
				xhr.open("POST","listedep.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 de l'auteur
				sel = document.getElementById('region');
				idregion = sel.options[sel.selectedIndex].value;
				xhr.send("idregion="+idregion);
			}
			function gp(){
				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){
						leselect = xhr.responseText;
						// On se sert de innerHTML pour rajouter les options a la liste
						document.getElementById('ville').innerHTML = leselect;
					}
				}
 
				// Ici on va voir comment faire du post
				xhr.open("POST","listeville.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 de l'auteur
				sel = document.getElementById('departement');
				id = sel.options[sel.selectedIndex].value;
				xhr.send("id="+id);
			}
 
		</script>
Voici mon script PHP( j'ai vérifié il fonctionne) qui va chercher la liste des villes:
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
// Connexion à la base de données
include("config.php");
 
$iddep=$_POST["id"];
 
echo "<select name='ville' class=\"case\" style=\"width:180px;\">";
	if(isset($_POST["id"]))
	{
	  if($_POST["id"]>0)
	  {	
		$res = mysql_query("SELECT * FROM ville	WHERE ID_DEP='$iddep' ORDER BY NOM_VILLE");
		while($row = mysql_fetch_assoc($res)){
			echo "<option value=".$row["ID_VILLE"].">".$row["NOM_VILLE"]."</option>";
		}
	  }
	  else
	  {
		echo "<option value='-1'>Choisir un d&eacute;partement</option>";
	  }
	}
	echo "</select>";
et voici l'appel sur la liste déroulante des departements:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
echo "<select name='departement' class=\"case\" style=\"width:180px;\" onchange=\"gp()\">";
Quelqu'un voit il dou vient le problème?

merci d'avance