Déplacer une colonne dans un tableau

Signaler
Messages postés
2
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
9 janvier 2007
-
Messages postés
2
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
9 janvier 2007
-
Bonjour à tous,

j'ai un petit problème à vous soumettre que je n'arrive pas bien à
résoudre. Pour mon boulot, on m'a demandé de travailler sur un tableau
affiché en PHP. Il voulait pouvoir cacher des colonnes ou les faires
réapparaitre ce que j'ai fais sans problème en Javascript et ce qui est
vraiment rapide.

Mais là, il me demande de pouvoir décaler des colonnes initialement
en 2ème position en 3ème position (donc la 3ème devient la 2ème, ...
,pigé ?? )

Voilà tout ça en Javascript/Ajax car les requêtes sous extremement
lourdes et je n'ai pas la possibilité de les refaire. Le maitre mot est
la rapidité de l'action !!!

Je sais que c'est possible car je l'ai déjà vu sur des sites mais je pense que c'était une nouvelle requête réactualiser !!

4 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Salut

Il faut savoir ce que tu entend par requetes.

SQL ou HTTP

SI tu veux du AJAX, une requete HTTP est nécéssaire.
Mais un e requête SQL n'est pas nécessaire.

Il suffit de travailler sur une collection qui a été écrite la prèmière fois.
Pour générer ton tableau et de changer le tri sur cette dernière.

Sur le serveur lors de la génération de ton rendu tu change lors des colonnes.

Si non tu peux le faire en DOM, mais c'est un peu plus complexe.

avec un algo du type

temp = col2
col2=col3
col3=temp
pour toutes les lignes des ton tableau

ie avec temp[i]

c'est ce qui s'appele un swap

Bon courage.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

   une ch'tit boucle....

<HTML Lang="fr">
<HEAD>
<Script type="Text/JavaScript"><!----------
function inverser(a,b)
{
 var t=document.getElementById("tableau");
 var tmp;
 for ( var l=0;l<t.rows.length;l++ )
 {
  tmp=t.rows[l].cells[a].innerHTML;
  t.rows[l].cells[a].innerHTML=t.rows[l].cells[b].innerHTML;
  t.rows[l].cells[b].innerHTML=tmp;
 }
}
//----------></Script>
</HEAD>

   ----
1.1, 1.2, 1.3,
  ----
2.1, 2.2, 2.3,
  ----
3.1, 3.2, 3.3,
  ----
4.1, 4.2, 4.3,
 

 

</HTML>

par exemple....
<hr />
            Cordialement       Bul       [mon Site]    [M'écrire]
<hr />
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
j'ai oublié de citer une source en exemple
   pour la gestion des tableaux : c'est ici
<hr />
               Cordialement             Bul          [mon Site]    [M'écrire]
<hr />
Messages postés
2
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
9 janvier 2007

Merci beaucoup ... je vais tester ça de suite j'avais essayer autre chose qui marche en simple HTML mais qui merde dans mon code PHP !!!

<html>
<head><title> Test de MoveColums </title>
    <script>
        function change(n) {
            var tb=document.getElementById("tab");
            var nbl=tb.rows.length;
            var nbc=tb.rows[0].cells.length;
            var k=(n<nbc-1)?n+1:0;

            for(var i=0;i<nbl;i++){
                memo=tb.rows[i].cells[n].innerHTML;
                tb.rows[i].cells[n].innerHTML=tb.rows[i].cells[k].innerHTML;
                tb.rows[i].cells[k].innerHTML=memo;
            }
        }
    </script>

            ----

            Besoin,
            n° Ordre,
            Article,
            Maint.,
       
        ----
a0, a1, a2, a3,
        ----
b0, b1, b2, b3,
        ----
c0, c1, c2, c3,
   

</html>