Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/07/2008, 19h11   #1
Invité de passage
 
Inscription : juillet 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 2
Points : 0
Points : 0
Par défaut AJAX sous IE

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");
	}
}
gelo197 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2008, 22h57   #2
Membre éclairé
 
Inscription : octobre 2006
Messages : 345
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : octobre 2006
Messages : 345
Points : 301
Points : 301
Bonjour,

Essaie en ajoutant une variable qui évolue pour forcer IE à recharger le script

Code :
1
2
3
var dt = new Date(); // Modif pour le cache
//donnees = INFORMATION QUI VONT ETRE TRANSMISE A LA PAGE
var donnees = 'code_postal=' + code_postal.value+"&time=" + dt.getMilliseconds(), // Modif pour le cache
A+
jlmag est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h30.


 
 
 
 
Partenaires

Hébergement Web