IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

onChange ok sous IE mais pas sous FF


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 306
    Points : 106
    Points
    106
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :-)

  2. #2
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 306
    Points : 106
    Points
    106
    Par défaut
    Merci pour ton aide, le problème venait en fait de l'encodage des caractères.

    Problème résolu, merci

    @++

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 651
    Points : 11 145
    Points
    11 145
    Par défaut
    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]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme affichage code sous IE mais pas sous Firefox
    Par misirlou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 20/04/2006, 14h18
  2. Réponses: 1
    Dernier message: 13/04/2006, 12h21
  3. [XML] Shift-JIS : Marche sous Firefox mais pas sous IE...
    Par Magus (Dave) dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 24/01/2006, 17h19
  4. Jascript fonction sous IE mais pas sous Netscape ou FF
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 29/12/2005, 17h02
  5. Menu dynamique marchant sous FF mais pas sous IE
    Par T-durden dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/08/2005, 14h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo