Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources 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 01/01/2011, 23h05   #1
Membre du Club
 
Homme
Inscription : janvier 2008
Messages : 239
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27

Informations forums :
Inscription : janvier 2008
Messages : 239
Points : 58
Points : 58
Par défaut onChange ok sous IE mais pas sous FF

Bonjour,

Le script suivant est censé recuperer des resultats dans une base de données puis les afficher a l'écran.
Tout fonctionne tres bien sous firefox les resultats sont recuperes et affichés dynamiquement, mais sous IE les resultats ne s'affichent pas... problème de création ou d'affichage des noeuds surement.

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
 
<script type="text/javascript">
window.document.onload = testerNavigateur;
 
 
 
function stats_vente(date)
	{
	objetXHR2 = creationXHR();
	objetXHR2.open("get", "ajax/statsRestaucafete.php?dateDetail="+date, true);
	objetXHR2.onreadystatechange = afficheStats;
	objetXHR2.send(null);	
	}
 
 
 
 
function afficheStats()
	{
	if(objetXHR2.readyState == 4)
		{
		if(objetXHR2.status == 200)
			{
			var listeJSON = objetXHR2.responseText;
			var objetJSON = listeJSON.parseJSON();
			//var tableListe = document.getElementById("tableListe");
 
			//Code de suppression des noeuds de tableListe
			var element = document.getElementById("tableListe");
			while (element.firstChild)
				{
				element.removeChild(element.firstChild);
				}
			//Fin code de suppression
 
 
			for(var i = 0; i < objetJSON.resultat.length; i++)
				{
				var nom = objetJSON.resultat[i].nom;
				var vente = objetJSON.resultat[i].nombre_ventes;
				var id_sd = objetJSON.resultat[i].id_menu;
 
				var nouveauTR = document.createElement('tr');
 
				var nouveauTD1 = document.createElement('td');
				var nouveauA = document.createElement('a');
				var nouveauTxt1 = document.createTextNode(nom);
				nouveauTD1.appendChild(nouveauA);
				nouveauA.appendChild(nouveauTxt1);
				nouveauA.setAttribute('href', 'detail_menu_restaucafete.php?id_menu='+id_sd);
 
 
				var nouveauTD2 = document.createElement('td');
				var nouveauTxt2 = document.createTextNode(vente);
				nouveauTD2.appendChild(nouveauTxt2);
 
				nouveauTR.appendChild(nouveauTD1);
				nouveauTR.appendChild(nouveauTD2);
 
				element.appendChild(nouveauTR);
				}
			}
		}
	}
 
 
...
Autre partie :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<select onChange="stats_vente(this.value);" id="stats_vente">
		<option value="">Selectionnez une date</option><option value="1293656222">29/12/2010</option><option value="1293742622">30/12/2010</option><option value="1293829022">31/12/2010</option><option value="1293915422">01/01/2011</option>
 
		</select>
 
 
<table class=\"th_table1_style\">
		<thead>
		<th>Dénomination</th><th>Nombre de ventes</th></thead>
		<tfoot><th>Dénomination</th><th>Nombre de ventes</th></tfoot>
 
		<tbody id=\"tableListe\"></tbody>
 
		</table>
Merci d'avance pour vos lumières :-)
popy67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2011, 04h52   #2
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 073
Points : 4 073
Pistes à vérifier dans ce cas de figure :

- le piège du firstChild sous IE
- la compatibilité de setAttribute (j'ai un doute, je crois me souvenir que certains attributs passent mal sous IE avec cette méthode)
- tu testes un status à 200 mais tu peux obtenir un status à 0 aussi, il vaut mieux :
Code javascript :
if((objetXHR2.status == 200) || (objetXHR2.status == 0))
La liste n'est certainement pas complète, mais vu l'heure, je crois qu'il faut que j'aille vite me coucher avant le soleil
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2011, 11h52   #3
Membre du Club
 
Homme
Inscription : janvier 2008
Messages : 239
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27

Informations forums :
Inscription : janvier 2008
Messages : 239
Points : 58
Points : 58
Merci pour ton aide, le problème venait en fait de l'encodage des caractères.

Problème résolu, merci

@++
popy67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2011, 12h00   #4
Expert Confirmé Sénior
 
Avatar de Auteur
 
Inscription : avril 2004
Messages : 4 789
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 4 789
Points : 5 112
Points : 5 112
Citation:
Envoyé par RomainVALERI Voir le message
- la compatibilité de setAttribute (j'ai un doute, je crois me souvenir que certains attributs passent mal sous IE avec cette méthode)
je confirme

[mode tatillon]
Je vois des déclarations de variables au milieu du code et dans une boucle for ........
Tu ne peux pas mettre toutes ces déclarations de variables au début de tes fonctions histoire d'avoir (à mon avis) un code plus propre ?

Oui, je l'admets, je déteste les déclarations de variables qui se baladent un peu partout dans le code. (il faut vraiment que je fasse des recherches pour savoir d'où vient cette "mode")
[/mode tatillon]
Auteur 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 14h36.


 
 
 
 
Partenaires

Hébergement Web