Problème insertion dans une table via appenchild [Résolu]

Signaler
Messages postés
441
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
6 mai 2010
-
ludovicanceaux
Messages postés
441
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
6 mai 2010
-
Salut à tous,

j'ai un gros problème, car je voudrais remplir un tableau à l'aide des composants appenchild, etc.... et apparament ca me remplit mon tableau comme il faut, mais pourtant à l'affichage il n'y a rien quand je fait par exemple alert(document.getElementById("content_table_liste").innerHTML); je vois que mon tableau s'est remplit correctement par contre il est toujours vide...

je vous montre mon code:

et dans mon fichier js:
function add_table_liste(array_table){
        for(i=0;i
Merci d'avance

10 réponses

Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
29
dans IE, ça baigne aussi... si on met ça dans TBody
       pas dans table ( on oublie toujours ce satané tbody ! )
    mais, avec FF, ça ne lui plait pas ! (il me reste peut-être des erreurs )
    pas regardé avec safari.

    perso j'utilise plutôt insertRow et insertCell
       ( parce que ça me semble plus simple,
          et que ça baigne partout  de la même manière
          ch'tit exemple ici )         

   
   
   

<script type="text/javascript">
    var liste=new Array(
        new Array("a1","a2","a3","a4"),
        new Array("b1","b2","b3","b4","b5","b6"),
        new Array("c1","c2")
        );
    var t0=document.getElementById("tableau");
    var t1,t2,t3,t4;
    for ( var l=0;l<liste.length;l++ )
    {    t1=document.createElement("tr");
        t2=t0.appendChild(t1);
        for ( var c=0;c<liste[l].length;c++ )
        {    t3=document.createElement("td");
            t4=t2.appendChild(t3);
            t4.innerText=liste[l][c];
        }
    }
</script>

<hr />



Cordialement                Bul         [mon Site]     [M'écrire]
<hr />


En général, c'est absurde de généraliser.
Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
4
Et en faisant comme ça ?
    function clearTable(){
        var _table = document.getElementById("content_table_liste");
        while ( _table.rows.length >0)
                _table.deleteRow(0);
       
    }
...

[o-_-o]
Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
4
Bien le bonjour ,
Trop rapide Bultez, trop rapide

voilà la méthode avec les insertRow, insertCell

            function add_table_liste(array_table){
                // récupère la table
                var _table = document.getElementById("content_table_liste");
        for(i=0;i<array_table.length;i++){
                // création d'une ligne
            var row = _table.insertRow(i);
            //création d'une colonne.
            var new_control_td_marque=row.insertCell(0);          
            new_control_td_marque.id=array_table[i][12];
            new_control_td_marque.onclick=function(){read_array(this.id)};
            new_control_td_marque.appendChild ( document.createTextNode(array_table[i][1]));
           //création d'une colonne.
            var new_control_td_modele=row.insertCell(1);
            new_control_td_modele.id=array_table[i][12];
            new_control_td_modele.onclick=function(){read_array(this.id)};
               new_control_td_modele.appendChild (document.createTextNode(array_table[i][2]) );
           //création d'une colonne.
            var new_control_td_millesime=row.insertCell(2);
            new_control_td_millesime.id=array_table[i][12];
            new_control_td_millesime.onclick=function(){read_array(this.id)};
               new_control_td_millesime.appendChild ( document.createTextNode(array_table[i][0]) );
        }
    }

....



[o-_-o]
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
29
salut zobibol

>>Trop rapide Bultez, trop rapide
    parce que tu as lu la question plus tard que moi !     ;-)

>>voilà la méthode avec les insertRow, insertCell
    ben moi aussi je préfère cette méthode, comme je disais :

   

me semble plus simple ( mais chacun ses goûts ! )
       et surtout : ça baigne partout (?) de la même manière





<hr />




Cordialement                Bul         [mon Site]     [M'écrire]
<hr />

En général, c'est absurde de généraliser.
Messages postés
441
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
6 mai 2010
1
ah ouhai c cool, c bidon en fait d'inserer un tr à un tbody et non à la table, à propos c'est quoi cette balise???
Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
4
Le problème des insertRow, insertCell est tout de même la gestion de la table :
    doit-on vider la table avant ?
    inserer à la suite des lignes éxistantes ?
Mais sans informations, pas de solutions !

[o-_-o]
Messages postés
441
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
6 mai 2010
1
je suis en train de faire une fonction pour effacer toutes les lignes du tableau, et ce que vous pouvez me dire si c'est une solution qui convient?

var tags=['tr'];
  var count_var=0;
  for(tagCounter=0;tagCounter<tags.length;tagCounter++){
   var inputs=document.getElementsByTagName(tags[tagCounter]);
   for(var no=0;no<inputs.length;no++){
    var mytable=inputs[no].id;
    if(mytable.substring(0,12)=='table_liste_'){
     document.getElementById('content_table_liste').removeChild(document.getElementById('content_table_liste').lastChild);
    }    
   }
  }  }
Messages postés
441
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
6 mai 2010
1
bah on a ecrit en même temps, bah j'y vien là, en fait il faut que j'efface le tableau avant d'insérer c'est pour ca, que j'ai créer la fonction ci dessus, mais je suis pas sur qu'elle convienne
Messages postés
441
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
6 mai 2010
1
c'est si simple que ca??? et moi qui à crée un truc de 20 lignes.......... mdr

je vais testé ca!!!
Messages postés
441
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
6 mai 2010
1
bah ca marche impec, merci bcp les gars!!!