Déplacer une colonne dans un tableau

Rinardo Messages postés 2 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 9 janvier 2007 - 8 janv. 2007 à 16:34
Rinardo Messages postés 2 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 9 janvier 2007 - 9 janv. 2007 à 10:24
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

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 36
8 janv. 2007 à 23:50
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.
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
9 janv. 2007 à 07:09
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 />
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
9 janv. 2007 à 07:16
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 />
0
Rinardo Messages postés 2 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 9 janvier 2007
9 janv. 2007 à 10:24
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>
0