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
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>
Et en faisant comme ça ?
function clearTable(){
var _table = document.getElementById("content_table_liste");
while ( _table.rows.length >0)
_table.deleteRow(0);
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]) );
}
}
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 !
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);
}
}
} }
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