[AJAX] script ajax basique qui n'est pas executé
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 :
Code:
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);
} |
html :
Code:
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:
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:
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 .