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 :

[AJAX] Table.innerHTML et IE..


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 45
    Par défaut [AJAX] Table.innerHTML et IE..
    Bonjour à tous,

    Je suis novice dans le forum et j'espère que vos lumières m'aideront à y voir plus clair dans le monde impitoyable de l'Ajax.

    Mon problème est le suivant. Je suis amené à développer une interface d'administration destinée à mettre à jour des données.
    J'ai une page html avec un tableau (je vous épargne les détails) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <table id="table_grades" cellpadding="0" cellspacing="0" border="1">
            <thead>
                    <tr>
                    <th>Nom</th>
                    <th>Prenom</th>
                    <th>Date d'obtention</th>
                    <th>Grade</th>
                    </tr>
            </thead>
            <tbody id="tb" name="tb"><!-- ici on insère nos données issues de PHP (les <tr> de chaque personnes)-->
            </tbody>
    </table>
    Le but est d'effectuer une recherche selon les critères choisis par l'utilisateur (nom, prenom...) et d'afficher les résultats en temps réel.

    J'ai opté pour une solution en AJAX qui fonctionne merveilleusement bien ... sous Firefox. Le navigateur le plus pourri que je connaisse, IE, refuse de m'afficher les lignes. Après un débuggage, il semble que le souci provienne d'un innerHTML de mon tbody au moment de la mise à jour...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(xhr.responseText!="") {
    lbletat.innerHTML = ""
    lblres.innerHTML = ""
    //alert(xhr.responseText)
    document.getElementById("tb").innerHTML = xhr.responseText <<<< ici
    Firefox ne bronche pas à cette syntaxe... auriez-vous une solution à ce problème ?

    Merci d'avance et bonne soirée à vous.

  2. #2
    Membre expérimenté Avatar de Ikonic
    Inscrit en
    Février 2007
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 197
    Par défaut
    Salut,

    N'aurais-tu pas oublier les balises <tr></tr> et <td></td> ?

    Voir DOM createElement et appendChild.

    Peux-tu nous donner un exemple type de ta réponse xhr.responseText, pour pouvoir te proposer la correction ?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 45
    Par défaut
    Salut et merci de ta réponse,

    Alors les balises sont belles et bien fermées, je t'ai mis un imprime écran d'un alert de mon xhr.response.text.

    Merci à toi
    Images attachées Images attachées  

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    as-tu essayé de regénérer tout le tableau (de <table> à </table>) à la réponse d'Ajax ?
    Avec IE6, ça ne pose pas de problème (bien que la syntaxe DOM soit toujours préférable).

    A+

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 45
    Par défaut
    Bonjour,

    Ta méthode a marché, merci énormément.

    Je vais tout de même tenter de réecrire le code plus proprement, mais je ne vois pas comment procéder pour la mise à jour de plusieurs centaines de lignes via le DOM.
    Peut être avez-vous une idée ?

    Merci en tout cas, cela fonctionne très bien déjà !

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par jyuzakumo Voir le message
    Je vais tout de même tenter de réecrire le code plus proprement, mais je ne vois pas comment procéder pour la mise à jour de plusieurs centaines de lignes via le DOM.
    Normalement il suffit d'imbriquer correctement les boucles de créations des <tr> et <td>.
    Le nombre de lignes du tableau final ne devrait pas augmenter la complexité du code ...

    A+

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

Discussions similaires

  1. Ajax/js InnerHTML affichage image
    Par tib0 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/02/2010, 23h12
  2. [Prototype] [AJAX] Exécuter une fonction javascript via une requête AJAX et innerHTML
    Par Invité dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 01/05/2009, 04h36
  3. [AJAX] Tables différence entre IE et Firefox
    Par yuukuari dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 28/06/2007, 11h10
  4. [AJAX] innerHTML assez déroutant
    Par dragonfly dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 31/01/2007, 13h09
  5. [AJAX] Ajax et innerhtml
    Par reg11 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/09/2006, 10h33

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