Bonjour, j'ai un formulaire qui, normalement, devrait faire ceci : on a un select avec les régions de france, avec le onchange, sa affiche une autre liste déroulante avec les departement correspondants . mais voilà, mon script est super super simple et je ne comprends pas pourquoi il ne marche pas
D'autant plus que je fais la meme action dans le meme formulaire avec un autre champ select qui lui marche très bien .
ajax :
html :
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 function region(quelle) { var xhr = getxhr(); xhr.onreadystatechange = function() {if (xhr.readyState == 1) { document.getElementById("depart").innerHTML="1<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>"; } if (xhr.readyState == 2) { document.getElementById("depart").innerHTML="2<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>"; } if (xhr.readyState == 3) { document.getElementById("depart").innerHTML="3<span align='center'><img src='composants/inscription/loader.gif' style='width:32px;height:32px;' /></span>"; } if (xhr.readyState == 4 && xhr.status == 200) { document.getElementById("depart").innerHTML=xhr.responseText; } }; var requete="reg="+quelle; xhr.open("POST", "composants/inscription/departement.php", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(requete); }
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 // ceci est une partie du tableau d'un formulaire antre des balises <form></form> <tr><th>Département *</th><td><div id="depart"></div></td></tr>
composants/inscription/departement.php :
Code php : 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 <?php include '../../php/function.php'; if (isset($_POST['reg'])) { db_connect(); $reg=$_POST['reg']; $query=mysql_query("SELECT * FROM departement WHERE id_region='$reg'"); ?> <select name="departement" id="departement" onChange="dept();"><option value="">Département</option> <?php while ($dep=mysql_fetch_array($query)) { ?> <option value="<?php echo $dep['id']; ?>"><?php echo htmlentities($dep['departement']); ?></option> <?php } ?> </select> <?php } ?>
la liste déroulante est appelée dans le formulaire par un include dont voici le fichier inclus :
Code php : 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 <?php db_connect(); $query=mysql_query("SELECT * FROM region"); ?> <div> <select name="region" id="region" onChange="region(this.value);"><option value="">Région</option> <?php while ($r=mysql_fetch_array($query)) { ?> <option value="<?php echo $r['id']; ?>"><?php echo $r['region']; ?></option> <?php } ?> </select> </div>
la liste déroulante des régions s'affiche bien, mais le onchange ne marche pas
je précise que les fonctions sont dans un fichier qui se nomme ,ajax.js qui est bien appelé dans le head du fichier parent .
Le formulaire est dans un fichier inclus dans le fichier parent et est dans une fonction
Aucun ready state n'est retourné, ni 1, ni 2, ni 3, ni 4 ...
Merci pour votre aide précieuse par avance .
Partager