[AJAX] listes liés qui ne marchent pas sous Mozilla
Bonjour à tous
Voila ce que j'essaye de faire : une liste de pays alimentée par une base de donnée. Une fois le pays choisit une liste de région de ce pays s'affiche. Cette liste est également alimentée par la base de donnée.
Certain pays n'ont pas de région la 2eme liste ne doit donc pas s'afficher. La page se trouve à cette adresse .
Sous IE tout se passe bien, mais sous Mozilla ça marche mal.
Voila le code de la partie 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
|
if(isset($_POST["action"])){
if ($_POST["action"]=="inscription_famille")
{
if(isset($_POST["id_pays"])){
$SELECT="SELECT id_region, nom_region_key FROM region WHERE id_pays=".$_POST["id_pays"];
$sql_interpreteur_ajax->executer_requete($SELECT);
$text="";
if ($sql_interpreteur_ajax->nombre_reponses()>0){
$text.="<select name='region' id='region' onChange='gestionDepartement();'>";
$text.='<option value="-1">'.texte_traduit('global_choisissez',true).'</option>';
while($data_ajax = $sql_interpreteur_ajax->fetch_array())
{
$text.= "<option value='".$data_ajax["id_region"]."'>".getRegion($data_ajax["nom_region_key"],true)."</option>";
}
$text.= "</select>";
}else
{
$text="";
}
echo $text;
}
}
} |
La fonction javascript
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 28 29
|
function gestionRegion(){
var xhr = 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
if (leselect.length>1){
document.getElementById('region').innerHTML = leselect;
document.getElementById('intitule_region').innerHTML =" <?php texte_traduit("forms_label_region"); ?>" ;
}
else{
document.getElementById('intitule_region').innerHTML ="";
document.getElementById('region').innerHTML = "";
}
}
}
// Ici on va voir comment faire du post
xhr.open("POST","ajax_utils/gestionRegion.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
sel = document.getElementById('pays');
idpays = sel.options[sel.selectedIndex].value;
xhr.send("id_pays="+idpays+"&action=inscription_famille");
} |
Merci d'avance pour votre aide