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

HTML Discussion :

Ajout de ligne dynamique dans un tableau (Incompatible IE)


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 23
    Par défaut Ajout de ligne dynamique dans un tableau (Incompatible IE)
    Bonjour,

    Je cherche à rajouter de manière dynamique des lignes à mon tableau mais je n'y parviens pas sous IE. (Ce code fonctionne parfaitement sous Opéra et Firefox)

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <TABLE id="ma_table" BORDER="0" CELLSPACING="0" CELLPADDING="0"  bgcolor="white">
         <TR height="2px" bgcolor="white"><TD><a href="#">Ligne 1</a></TD></TR>
    </TABLE>
    <SCRIPT language="JavaScript">
    <!--
         ligne               = document.createElement('tr');
         cell                = document.createElement('td');
         cell.innerHTML = '<a href="#">Ligne 2</a>';
         ligne.appendChild(cell);
         document.getElementById('ma_table').appendChild(ligne);
    -->
    </SCRIPT>
    Si quelqu'un a une idée...

    D'avance Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut
    Tu t'es planté de forum là je crois.

  3. #3
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    et si tu essayais un code tout simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <Script langage="JavaScript">
    Mot = "<tr>";
    Mot = Mot & "<td>";
    Mot = Mot & "<a href='#'> Ligne 1 </a>";
    Mot = Mot & "</td>";
    Mot = Mot & "</tr>";
     
    document.write(mot);
    </script>
    je croit que ceci devrais aller.

  4. #4
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 23
    Par défaut
    Malheureusement, je ne peux pas utiliser ce bout de code car je désire rajouter un élément à mon tableau une fois que la page HTML est déja chargée.
    C'est pour cela que j'utilise la création dynamique d'objet selon l'architecture DOM pour arriver à mes fins... mais mon problème c'est que je pense qu'IE ne répond pas au standard de programation dans ce domaine. Ou peut être tout simplement que c'est moi qui n'utilise pas la bonne méthode.

  5. #5
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Encore une fois, ton post aurait été plus à sa place sur le forum javascript...

    Pour ce qui est de la "solution", c'est que IE est apparement strict sur la prise en compte des éléments optionnels.

    Il faut donc que dans ta table tu tiennes compte du tbody même si tu n'en utilise pas.

    voilà un code qui fonctionne (chez moi...) :
    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
     
    <script type="text/javascript">
            // Recuperation des elements :
            var ligne       = document.createElement("tr");
            var colonne     = document.createElement("td");
            var a           = document.createElement("a");
            var href        = document.createAttribute("href");
            var texte       = document.createTextNode("Ligne 2");
     
            // Affectation des valeurs
            href.nodeValue = "#";
            a.setAttributeNode(href);
            a.appendChild(texte);
            colonne.appendChild(a);
            ligne.appendChild(colonne);
     
            // Ajout dans le tableau APRES le <tbody> (d'ou le firstChild)
            document.getElementById("ma_table").firstChild.appendChild(ligne);
    </script>

  6. #6
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 23
    Par défaut
    Désolé de ne pas être dans le bon forum.

    Pour ce qui est de ta solution, elle fonctionne parfaitement sous IE mais au premier abord je dirais qu'elle n'est pas compatible avec Firefox.
    Si je ne trouve pas autre chose je peux rajouter un test pour connaître le type de navigateur utilisé mais bon... je préfèrerais éviter.

  7. #7
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 23
    Par défaut
    La solution est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById ('ma_table').getElementsByTagName('tbody')[0].appendChild (ligne);
    à la place de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('ma_table').appendChild(ligne);

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

Discussions similaires

  1. ajouter des lignes dynamiquement dans un JTable
    Par Jolt0x dans le forum Composants
    Réponses: 6
    Dernier message: 15/05/2014, 16h32
  2. [Débutant] [MVC 2]Ajouter une ligne dynamiquement dans un tablean
    Par John.BE dans le forum ASP.NET MVC
    Réponses: 9
    Dernier message: 23/10/2013, 11h28
  3. Réponses: 3
    Dernier message: 21/06/2009, 15h16
  4. [DOM] ajouter un element dynamiquement dans un tableau (<table>)
    Par Skanking dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 24/01/2009, 11h40
  5. Réponses: 5
    Dernier message: 25/06/2007, 09h51

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