Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, 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 17/05/2011, 12h07   #1
Invité de passage
 
Inscription : février 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 7
Points : 2
Points : 2
Par défaut Fonction each sous ie

Dans un formulaire j'ai une liste déroulante qui permet de choisir entre Départemental ou Régional et selon ce choix la liste des régions ou des départements apparait dans une autre liste déroulante.
Pour cela j'utilise jQuery qui appelle grâce à de l'ajax une fonction php qui liste les départements ou les régions et qui les retourne en xml à la fonction ajax qui créer ensuite la nouvelle liste. Sous Firefox et Chrome cela marche mais pas sous IE, quelqu'un aurait une idée?

Merci

Voici 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
30
31
32
33
34
 
/*
 * Fonction pour afficher la liste des départements
 * ou des régions
 */
$(function localisation(){
	$("#localisation").change(function(){
		$('#listeDep').remove();
		$('#listeReg').remove();
		$.ajax({
			type: "GET",
			url: "modeles/localisation.php",
			data: {localisation:$("#localisation").val()},
			success: function(xml){
						if($("#localisation").val()==0) {
							$("#localisation").after($('<select/>').attr("id","listeDep").attr("name","listeDep"));
							$('departement',xml).each(function(){
								$('#listeDep').append($('<option />').attr("value",$(this).find('numeroDepartement').text())
																	 .attr("id",$(this).find('numeroDepartement').text())
																	 .text($(this).find('nom').text()+" ("+$(this).find('numeroDepartement').text()+")"));
							});
						}
						if($("#localisation").val()==1) {
							$("#localisation").after($('<select/>').attr("id","listeReg").attr("name","listeReg"));
							$('region',xml).each(function(){
								$('#listeReg').append($('<option />').attr("value",$(this).find('idRegion').text())
																	 .attr("id",$(this).find('idRegion').text())
																	 .text($(this).find('nom').text()));
							});
						}
					}
		});
	});
});
Voici la fonction qui génère le xml :
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
 
<?php
/*
 * Script PHP appelé par une fonction AJAX de jQuery lors
 * de la consultation de la liste des demandes pour filtrer
 * par localisation
 */
include_once('mConsultationDemande.php');
$tab=mConsultationDemande::localisation($_GET['localisation']);
if($_GET['localisation']==0){
	$xml="<departements>";
	foreach($tab as $value) {
		$xml.="<departement>";
		$xml.="<numeroDepartement>".$value['numeroDepartement']."</numeroDepartement>";
		$xml.="<nom>".$value['nom']."</nom>";
		$xml.="</departement>";
	}
	$xml.="</departements>";
}
else {
	$xml="<regions>";
	foreach($tab as $value) {
		$xml.="<region>";
		$xml.="<idRegion>".$value['idRegion']."</idRegion>";
		$xml.="<nom>".$value['nom']."</nom>";
		$xml.="</region>";
	}
	$xml.="</regions>";
}
echo($xml);
?>
Et voici le code HTML concerné :
Code :
1
2
3
4
5
6
7
8
9
 
			echo("<div>");
			echo("<label class='form_label' for='localisation'>Par localisation</label>");
			echo("<select id='localisation' name='localisation'>");
				echo("<option value=''>Choisissez une localisation</option>");
				echo("<option value='0'>Départementale</option>");
				echo("<option value='1'>Régionale</option>");
			echo("</select>");
			echo("</div>");
cyril.D est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 12h31   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 009
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 009
Points : 45 094
Points : 45 094
il serait préférable de vois le code html généré et pas le code php
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 14h35   #3
Invité de passage
 
Inscription : février 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 7
Points : 2
Points : 2
Citation:
Et voici le code HTML concerné :
Code :
1
2
3
4
5
6
7
8
9
 
			echo("<div>");
			echo("<label class='form_label' for='localisation'>Par localisation</label>");
			echo("<select id='localisation' name='localisation'>");
				echo("<option value=''>Choisissez une localisation</option>");
				echo("<option value='0'>Départementale</option>");
				echo("<option value='1'>Régionale</option>");
			echo("</select>");
			echo("</div>");
Citation:
Envoyé par SpaceFrog Voir le message
il serait préférable de vois le code html généré et pas le code php
ça ajoute cette ligne simplement après le select[id='localisation']:
Code :
1
2
 
<select propdescname="listeDep" id="listeDep"/>
alors que sous FF ou Chrome ça génère la bonne liste :
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
 
<select name="listeDep" id="listeDep"><option value="01" id="01">Ain
 (01)</option><option value="02" id="02">Aisne
 (02)</option><option value="03" id="03">Allier
 (03)</option><option value="04" id="04">Alpes-de-Haute-Provence
 (04)</option><option value="05" id="05">Hautes-Alpes
 (05)</option><option value="06" id="06">Alpes-Maritimes
 (06)</option><option value="07" id="07">Ardèche
 (07)</option><option value="08" id="08">Ardennes
 (08)</option><option value="09" id="09">Ariège
 (09)</option><option value="10" id="10">Aube
 (10)</option><option value="11" id="11">Aude
 (11)</option><option value="12" id="12">Aveyron
 (12)</option><option value="13" id="13">Bouches-du-Rhône
 (13)</option><option value="14" id="14">Calvados
 (14)</option><option value="15" id="15">Cantal
 (15)</option><option value="16" id="16">Charente
 (16)</option><option value="17" id="17">Charente-Maritime
 (17)</option><option value="18" id="18">Cher
 (18)</option><option value="19" id="19">Corrèze
 (19)</option><option value="21" id="21">Côte-d'Or
 (21)</option><option value="22" id="22">Côtes-d'Armor
 (22)</option><option value="23" id="23">Creuse
 (23)</option><option value="24" id="24">Dordogne
 (24)</option><option value="25" id="25">Doubs
 (25)</option><option value="26" id="26">Drôme
 (26)</option><option value="27" id="27">Eure
 (27)</option><option value="28" id="28">Eure-et-Loir
 (28)</option><option value="29" id="29">Finistère
 (29)</option><option value="2A" id="2A">Corse-du-Sud
 (2A)</option><option value="2B" id="2B">Haute-Corse
 (2B)</option><option value="30" id="30">Gard
 (30)</option><option value="31" id="31">Haute-Garonne
 (31)</option><option value="32" id="32">Gers
 (32)</option><option value="33" id="33">Gironde
 (33)</option><option value="34" id="34">Hérault
 (34)</option><option value="35" id="35">Ille-et-Vilaine
 (35)</option><option value="36" id="36">Indre
 (36)</option><option value="37" id="37">Indre-et-Loire
 (37)</option><option value="38" id="38">Isère
 (38)</option><option value="39" id="39">Jura
 (39)</option><option value="40" id="40">Landes
 (40)</option><option value="41" id="41">Loir-et-Cher
 (41)</option><option value="42" id="42">Loire
 (42)</option><option value="43" id="43">Haute-Loire
 (43)</option><option value="44" id="44">Loire-Atlantique
 (44)</option><option value="45" id="45">Loiret
 (45)</option><option value="46" id="46">Lot
 (46)</option><option value="47" id="47">Lot-et-Garonne
 (47)</option><option value="48" id="48">Lozère
 (48)</option><option value="49" id="49">Maine-et-Loire
 (49)</option><option value="50" id="50">Manche
 (50)</option><option value="51" id="51">Marne
 (51)</option><option value="52" id="52">Haute-Marne
 (52)</option><option value="53" id="53">Mayenne
 (53)</option><option value="54" id="54">Meurthe-et-Moselle
 (54)</option><option value="55" id="55">Meuse
 (55)</option><option value="56" id="56">Morbihan
 (56)</option><option value="57" id="57">Moselle
 (57)</option><option value="58" id="58">Nièvre
 (58)</option><option value="59" id="59">Nord
 (59)</option><option value="60" id="60">Oise
 (60)</option><option value="61" id="61">Orne
 (61)</option><option value="62" id="62">Pas-de-Calais
 (62)</option><option value="63" id="63">Puy-de-Dôme
 (63)</option><option value="64" id="64">Pyrénées-Atlantiques
 (64)</option><option value="65" id="65">Hautes-Pyrénées
 (65)</option><option value="66" id="66">Pyrénées-Orientales
 (66)</option><option value="67" id="67">Bas-Rhin
 (67)</option><option value="68" id="68">Haut-Rhin
 (68)</option><option value="69" id="69">Rhône
 (69)</option><option value="70" id="70">Haute-Saône
 (70)</option><option value="71" id="71">Saône-et-Loire
 (71)</option><option value="72" id="72">Sarthe
 (72)</option><option value="73" id="73">Savoie
 (73)</option><option value="74" id="74">Haute-Savoie
 (74)</option><option value="75" id="75">Paris
 (75)</option><option value="76" id="76">Seine-Maritime
 (76)</option><option value="77" id="77">Seine-et-Marne
 (77)</option><option value="78" id="78">Yvelines
 (78)</option><option value="79" id="79">Deux-Sèvres
 (79)</option><option value="80" id="80">Somme
 (80)</option><option value="81" id="81">Tarn
 (81)</option><option value="82" id="82">Tarn-et-Garonne
 (82)</option><option value="83" id="83">Var
 (83)</option><option value="84" id="84">Vaucluse
 (84)</option><option value="85" id="85">Vendée
 (85)</option><option value="86" id="86">Vienne
 (86)</option><option value="87" id="87">Haute-Vienne
 (87)</option><option value="88" id="88">Vosges
 (88)</option><option value="89" id="89">Yonne
 (89)</option><option value="90" id="90">Territoire de Belfort
 (90)</option><option value="91" id="91">Essonne
 (91)</option><option value="92" id="92">Hauts-de-Seine
 (92)</option><option value="93" id="93">Seine-Saint-Denis
 (93)</option><option value="94" id="94">Val-de-Marne
 (94)</option><option value="95" id="95">Val-d'Oise (95)</option><option value="971" id="971">Guadeloupe (971)</option><option value="972" id="972">Martinique (972)</option><option value="973" id="973">Guyane (973)</option><option value="974" id="974">La Réunion (974)</option><option value="976" id="976">Mayotte (976)</option></select>
cyril.D est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 15h06   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 009
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 009
Points : 45 094
Points : 45 094
ha??? ça existe echo en html ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 10h00   #5
Invité de passage
 
Inscription : février 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 7
Points : 2
Points : 2
En fait j'ai trouvé d'où venait le problème, c'était dans mon javascript ou j'appelais en ajax une fonction php qui me retournait un xml et je n'avais pas précisé le dataType ce qui ne posait pas de problème sous Firefox ni sous Chrome mais sous IE oui.

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
 
$.ajax({
			type: "GET",
			url: "modeles/localisation.php",
			data: {localisation:$("#localisation").val()},
			dataType: "xml",
			success: function(xml){
						if($("#localisation").val()==0) {
							$("#localisation").after($('<select/>').attr("id","listeDep").attr("name","listeDep"));
							$('departement',xml).each(function(){
								$('#listeDep').append($('<option/>').attr("value",$(this).find('numeroDepartement').text())
																  .attr("id",$(this).find('numeroDepartement').text())
																  .text($(this).find('nom').text()+" ("+$(this).find('numeroDepartement').text()+")"));
							});
						}
						if($("#localisation").val()==1) {
							$("#localisation").after($('<select/>').attr("id","listeReg").attr("name","listeReg"));
							$('region',xml).each(function(){
								$('#listeReg').append($('<option/>').attr("value",$(this).find('idRegion').text())
																	 .attr("id",$(this).find('idRegion').text())
																	 .text($(this).find('nom').text()));
							});
						}
					}
		});
cyril.D est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h40.


 
 
 
 
Partenaires

Hébergement Web