Un Javascript pour changer l'ordre des TD dans un TABLE

Un Javascript pour changer l'ordre des TD dans un TABLE - HTML/CSS - Programmation

Marsh Posté le 22-01-2007 à 21:41:03    

Bonsoir !
 
voila, tout est dit je pense :
J'ai un tableau avec X ligne et Y collonnes, et je cherche a faire passer au sein de se tableau le groupe <tr> N°X a la position X+1 ou X-1 en cliquant sur un tableau, autrement dit, intervertir deux TR dans un tableau...
 
Ce doit etre possible comme avec des LI mais pour les TD je sais pas trop... Je pensani aux childNodes, mais ca reste trop flou...
 
Quelqu'un saurait-il m'indiquer comment procéder ?
 
Merci a vous :)

Reply

Marsh Posté le 22-01-2007 à 21:41:03   

Reply

Marsh Posté le 23-01-2007 à 09:58:00    

C'est un bon départ les childNodes :)
Tu vas également avoir besoin de la fonction insertBefore
Essaye de débuter avec ça et dis nous où tu bloques!

Reply

Marsh Posté le 23-01-2007 à 10:56:32    

Hey les filles :o
Encore mieux que les childNodes et c'est DOM :

 

en JS un TABLE contient un attribut
-tHeads qui est un array vers tous les thead
-tBodies  ""           ""               ""   les tbodies

 

-chaque thead et tbodies contient un attribut "rows"  qui est un array pointant sur chaque TR du Thead et/ou du Tbody

 

-Ensuite chaque TR contient un array "cells" qui pointent vers chaque TH et TD de la ligne.

 

-De plus les TR on un attribut qui est rowIndex, qui correspond à la position du TR dans le tableau rows
-Idem pour les TD et TH qui ont un attribut cellIndex qui correspond à leur position dans le tableau cell

 
Code :
  1. var table = document.getElementById("montableau" );
  2. var premierecellule = table.tBodies[0].rows[0].cells[0];


Message édité par gatsu35 le 23-01-2007 à 10:56:45
Reply

Marsh Posté le 23-01-2007 à 14:11:30    

Merci de cette aide précieuse, mais un flou persiste, le but de l'opération est en cliquant sur un bouton se trouvant lui meme sur une ligne du tableau, de faire monter l'enregistrement ou le descendre, par conséquent il faudrait savoir et fournir en argument dans une fonction la position de cet enregistrement...  
 
En fait je m'embrouille et ca me fait mal a la tete :/
Sur le net j'ai trouvé plein de JS mais pour trier, pas pour bouger des enregistrements :/
 
PS Gatsu35, jamais entendu parler de TH dans un <table>
Quel est le code HTML associé a ton exemple ?

Reply

Marsh Posté le 23-01-2007 à 14:50:36    

ce que tu demandes n'est vraiment pas très compliqué à faire à condition d'avoir quelques bases en js.
Par exemple, en cliquant sur ton bouton tu peux récuperer son noeud parent ( parentNode) qui est le td, le noeud parent de celui-ci qui sera le tr. Puis à partir de là jouer avec ...
Honnêtement on pourrait te donner la solution en 10 lignes ( gatsu s'amuserait à le faire en 3 :o ) mais cela ne présenterait aucun interêt ( pédagogique).

Reply

Marsh Posté le 23-01-2007 à 16:31:46    

anapajari a écrit :

ce que tu demandes n'est vraiment pas très compliqué à faire à condition d'avoir quelques bases en js.
Par exemple, en cliquant sur ton bouton tu peux récuperer son noeud parent ( parentNode) qui est le td, le noeud parent de celui-ci qui sera le tr. Puis à partir de là jouer avec ...
Honnêtement on pourrait te donner la solution en 10 lignes ( gatsu s'amuserait à le faire en 3 :o ) mais cela ne présenterait aucun interêt ( pédagogique).


Je te le fais pas dire :p Je suis surtout PHP, mais javascript je dois avoir le strict minimum (controles de saisie, redirection, etc...) mais les trucs plus poussés comme ca je ne les maitrises pas.
Je demande pas des forcéments des bouts de codes complet, et c'est emem mieux de le faire soit meme comme tu l'a souligné :)
 
Donc si j'ai bien compris , ceci :

Code :
  1. <td onclick="moveUp(this)"></td>


equivaudrait à :

Code :
  1. <td><input onclick="moveUp(this.parentNode)"></td>


Je suis dans le bon ? Après cela il faut connaitre la position du TR dans le TABLE, et là encore une fois c'est le flou.
Car après je créé un Array avec les différents chilNodes du TABLE. Et après il faut vider l'actuel tableau et le recréer en ne changeant que les TR qui m'intéressent.
 
Ya un élément qui permet d'obtenir la position dans le TABLE du TR courant ? au meme titre que le selectedIndex du select... ?
 
Merci :)


Message édité par the_bigboo le 23-01-2007 à 16:40:46
Reply

Marsh Posté le 24-01-2007 à 10:16:32    

up !

Reply

Marsh Posté le 25-01-2007 à 22:47:28    

up !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed