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

AJAX Discussion :

[AJAX] Remplir un select dans IE


Sujet :

AJAX

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 25
    Par défaut [AJAX] Remplir un select dans IE
    Bonjour à tous,

    Voilà je suis assez novice en JS/ajax, du coup j'aurais besoin d'un petit coup de main.
    En gros, je génère un select dans une page que je remplis grâce à de l'ajax, ça marche nickel sous FF mais pas sur IE ...

    Voilà le bout de code JS :

    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
    var xmldoc = httpRequest.responseXML;
     
    var root_node = xmldoc.getElementsByTagName("root")[0];
    var lenses = document.getElementById('lenses');
    // Nettoyage de la liste
     
    if (root_node.childNodes.length == 1)
    	document.getElementById('tr_lenses').style.display = "none";
    for (i = 0; i < root_node.childNodes.length; i++)
    {
    	new_option = document.createElement("OPTION");
    	new_option.text = root_node.childNodes[i].getAttribute('NAME');
    	new_option.value = root_node.childNodes[i].getAttribute('ID');
    	lenses.options.add(new_option);
    }
    L'xml est sous forme : <root><FOO ID="" NAME="" /><FOO2 ID="" NAME="" /></root>.

    Je disais donc que sur Firefox les "option" sont bien insérés mais sous ie il me crache "objet inconnu" (un try/catch entoure ce bout de code)...

    Du coup au bout d'un moment au lieu de me pendre j'ai tout changé pour intégrer un responseText et copier tout en dur dans un innerhtml (les option sont générés dans le php), mais bon c'est crade et IE a aussi du mal avec les innerHTML.

    Donc si quelqu'un a une idée pour l'XML je l'en remercie, sinon je me rabattrai sur le texte.

    Merci, bonne journée.

  2. #2
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Tu n'as pas d'espaces entre tes balises XML ?

    ERE

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 25
    Par défaut
    Ah voilà merci, déjà une bonne chose de réparée.

    Mais j'ai aussi un autre problème : root_node est null sous IE.

    edit : Ah ben tu as édité plus vite que ton ombre, non je n'ai pas d'espaces.

  4. #4
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Citation Envoyé par woodstock1212 Voir le message

    edit : Ah ben tu as édité plus vite que ton ombre, non je n'ai pas d'espaces.
    Désolé mais après avoir fait un test sous IE ton code passait

    Par contre, si root_node est null, inscris plutôt:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var root_node = xmldoc.documentElement
    ERE

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 25
    Par défaut
    Citation Envoyé par emmanuel.remy Voir le message
    Par contre, si root_node est null, inscris plutôt:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var root_node = xmldoc.documentElement
    ERE
    Toujours null.

  6. #6
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Dans le header que tu envoies, tu spécifies bien que c'est un doc XML ?

    ERE

  7. #7
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 25
    Par défaut
    Wep :

    <?xml version="1.0" ?><root>[...]</root>

  8. #8
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Citation Envoyé par woodstock1212 Voir le message
    Wep :

    <?xml version="1.0" ?><root>[...]</root>
    Non, depuis le server envoies tu bien un header "Content-type: text/xml"
    Par exemple en PHP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-type: text/xml');
    ERE

  9. #9
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 25
    Par défaut
    Maintenant oui.

    Merci beaucoup, j'avais complètement zappé cette ligne...

    Je vais me flageller pour la peine.

    Bonne journée.

  10. #10
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Citation Envoyé par woodstock1212 Voir le message
    Maintenant oui.

    Merci beaucoup, j'avais complètement zappé cette ligne...

    Je vais me flageller pour la peine.

    Bonne journée.
    Et pour info, si tu ne pouvais pas le faire sur le server, tu aurais pu aussi l'induire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    httpRequest = new XMLHttpRequest();
    httpRequest.overrideMimeType('text/xml');
    , ce code étant valable pour tous les navigateurs (mais à partir de IE7+, version à partir de laquelle l'objet XMLHttpRequest remplace l'ActiveX dans IE).

    Bon après-midi,

    ERE

    PS: doucement sur la flagellation

  11. #11
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 25
    Par défaut
    Merci pour l'info.


    PS : Non t'inquiète pas, ça sera Magnum double choco.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/09/2013, 10h55
  2. Réponses: 12
    Dernier message: 11/05/2009, 10h41
  3. Réponses: 3
    Dernier message: 06/05/2009, 10h12
  4. [AJAX] execution à la selection dans liste déroulantes
    Par cUs3Mp dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/12/2008, 10h25
  5. [AJAX] Remplir un select
    Par dondano dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/11/2007, 16h02

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