[AJAX] XMLHttpRequest ne fonctionne qu'avec FF
Salut @ tous !
Dans le répertoire txt/ du serveur j'ai plusieurs fichiers contenant une liste de villes :
01 - Ain.txt
Bourg-en-Bresse
Oyonnax
Ambérieu-en-Bugey
Bellegarde-sur-Valserine
Miribel
Belley
.....
02 - Aisne.txt
Saint-Quentin
Soissons
Laon
Tergnier
.....
Ce script mets à jour grâce à du JS la liste des villes par rapport au département sélectionné :
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 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 69 70 71 72 73 74 75
| <script type="text/javascript">
function mise_a_jour_liste_noms_villes(fichier_noms_villes)
{
if(fichier_noms_villes != "0") // Si un département à été choisi alors ...
{
// **************************************************************
// Récupération du noms des villes dans le fichier du département
// **************************************************************
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
{
xhr_object = new XMLHttpRequest();
}
else if(window.ActiveXObject) // Internet Explorer
{
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
}
else // XMLHttpRequest non supporté par le navigateur
{
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
xhr_object.open("GET", "txt/"+fichier_noms_villes+".txt", true);
xhr_object.onreadystatechange = function()
{
if(xhr_object.readyState == 4)
{
// Récupération des noms des villes dans le fichier texte
// ------------------------------------------------------
var liste_noms_villes = xhr_object.responseText;
// Création du tableau contenant le noms des villes
// ------------------------------------------------
tableau_noms_villes = liste_noms_villes.split('\n');
// Mise à jour de la liste des noms de villes
// ------------------------------------------
nom_formulaire.choix_ville.options.length = tableau_noms_villes.length;
for($i=0; $i<tableau_noms_villes.length; $i++)
{
nom_formulaire.choix_ville.options[$i].value = $i;
nom_formulaire.choix_ville.options[$i].text = tableau_noms_villes[$i];
}
}
}
xhr_object.send(null);
}
else // Sinon si aucun département n'a été choisi ...
{
nom_formulaire.choix_ville.options.length = 1;
nom_formulaire.choix_ville.options[0].value = 0;
nom_formulaire.choix_ville.options[0].text = " -- Choisissez une ville -- ";
}
}
<form name="nom_formulaire">
<select name="choix_pays" onchange="mise_a_jour_liste_noms_villes(this.options[this.selectedIndex].value);">
<option value="0">-- Choisissez un département --</option>
<option value="01 - Ain">01 - Ain</option>
<option value="02 - Aisne">02 - Aisne</option>
</select>
<br />
<br />
<select name="choix_ville">
<option value="0"> -- Choisissez une ville -- </option>
</select>
</form> |
Tout fonctionne bien sous FF mais sous IE et netscape rien ne ce passe (le message d'alerte ne s'affiche pas !), sous Opéra le message d'alerte s'affiche.
Y a t il une solution au moins pour IE et netscape ?
Pour Opéra je laisse tomber ?
Merci...