Bonjour à tous! J'espère que vous arriverez à résoudre mon problème
J'ai créer un formulaire html ou il y a un champ texte et un menu déroulant. Le champ texte est consacrer au code postal et le menu déroulant au ville.
Mon traitement ajax consiste à modifier le menu déroulant à chaque modification du code postal. Sous FF tout fonctionne parfaitement mais sous IE il ne lance mon traitement qu'une fois et si je resaisi un caractere suplémentaire pour le code postal rien ne se déclenche.
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 76 77 78 79
|
/////////////////////////////////////////////////////////////////////////////////////////
// FONCTION QUI PERMET DE METTRE A JOUR LA LISTE DES VILLES EN FONCTION DU CODE POSTAL //
/////////////////////////////////////////////////////////////////////////////////////////
//objet_code_postal = OBJET XMLHttpRequest QUI RECHERCHE LES VILLES EN RELATION AVEC CE CODE POSTAL
var objet_code_postal;
//CREATION D'UN OBJET XMLHttpRequest SELON LE TYPE D'OBJET SUPPORTE PAR LE NAVIGATEUR
try
{
objet_code_postal = new XMLHttpRequest();
}
catch(e)
{
try
{
objet_code_postal = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
objet_code_postal = new ActiveXObject("Microsoft.XMLHTTP");
}
}
//ON AFFECTE AU CHANGEMENT DE STATUT DE L'OBJET XMLHttpRequest LA FONCTION QUI VA MODIFIER LA LISTE DES CODES POSTAUX ET DES RUES SI N'ECESSAIRE
objet_code_postal.onreadystatechange = function()
{
//ON VERIFIE SI LA TRANSACTION EST FINI
if(objet_code_postal.readyState == 4)
{
//ON VERIFIE SI LE TRAITEMENT S'EST BIEN DEROULE
if(objet_code_postal.status == "200")
{
//ON EVALUE LE CODE RETOURNER PAR LA PAGE PHP
eval(objet_code_postal.responseText);
}
}
}
function code_postal(code_postal)
{
//ON VERIFIE SI L'OBJET XMLHttpRequest EXISTE
if(objet_code_postal != null)
{
//ON ANNULE LA TRANSACTION EN COURS
objet_code_postal.abort();
}
//ON VERIFIE SI L'UTILISATEUR A SAISI EU MOINS 3 CARACETERE
if(code_postal.value.length >= 2)
{
//ville_select = MENU DEROULANT DES VILLES
var ville_select = document.form_victime.elements['ville_victime_select'];
//ON SPECIFIE LE FICHIER QUI VA ETRE UTILISE LORS DE L'ENVOIE DES DONNEES
objet_code_postal.open('POST', '../fonction/ajax/code_postal.php', true);
//ON SPECIFIE LE TYPE DE DONNEES QUI VA ETRE ENVOYE
objet_code_postal.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//donnees = INFORMATION QUI VONT ETRE TRANSMISE A LA PAGE
var donnees = 'code_postal='+code_postal.value;
//ENVOIE DES DONNEES VERS LA PAGE PHP QUI VA TRAITE LES DONNEES
objet_code_postal.send(donnees);
}
else
{
//ville_select = MENU DEROULANT DES VILLES
var ville_select = document.form_victime.elements['ville_victime_select'];
//ON VIDE LE MENU DEROULANT DES VILLES
ville_select.options.length = 0;
//ON AJOUTE LA VALEUR NULL AU MENU DEROULANT
ville_select.options[0] = new Option("", "NULL");
}
} |