IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Intervertir deux lignes d'un tableau


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Points : 96
    Points
    96
    Par défaut Intervertir deux lignes d'un tableau
    Bonjour,

    Je cherche a faite une petite fonction JS qui permet de monter et descendre des lignes dans un tableau html (avec des buton Up/Down). Ca doit etre assez simple à faire mais j'arrive pas a trouver un bon script.

    Merci.
    Seb.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    avec le DOM et insertBefore ...

  3. #3
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Points : 96
    Points
    96
    Par défaut
    j'arrives pas a le faire marcher

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    file le code ...

  5. #5
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Points : 96
    Points
    96
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function Up(idligne){
     
       myTR = $(idligne);
       var indexEnCours = myTR.rowIndex;
     
       if(indexEnCours > 2) {
        var previousRow = document.getElementById('tableau').rows[indexEnCours - 1];
        $(tableau).insertBefore(previousRow,myTR);
    }

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    bon voilà un exemple ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    </head>
    <script type='text/javascript'>
     
    function Tableau(){
     
    var Tab=document.createElement('table');
     
    var TabB=document.createElement('tbody');
    for (i=0;i<10;i++){
    						var TabL=document.createElement('tr');
    						TabL.id="ligne_"+i
    							for(j=0;j<5;j++){
    												var TabC=document.createElement('td')
    												TabC.innerHTML=i+'_'+j;
    												TabC.style.border="solid 1px black"
    												TabC.indiceLigne=i
    												//TabC.onclick=function(){alert(this.indiceLigne)}
    												TabC.ondblclick=function(){swapline(this)}
    												TabL.appendChild(TabC)
    												}
    					TabB.appendChild(TabL)
    					}							
     
    	Tab.appendChild(TabB)
    	document.body.appendChild(Tab)
    }
     
     
    function swapline(ligne){
    var ActiveLineNr=Number(ligne.parentNode.id.split('_')[1])
    var ActiveLine= document.getElementById('ligne_'+ActiveLineNr)
    var TempLine=ActiveLine.cloneNode(true)
     
    var PreviousLineNr=Number(ActiveLineNr-1)
    var PreviousLine = document.getElementById('ligne_'+PreviousLineNr)
     
    ligne.parentNode.parentNode.insertBefore(TempLine,PreviousLine)
    ligne.parentNode.parentNode.removeChild(ActiveLine)
    }
     
    </script>
     
    <body onload="Tableau()">
     
     
    </body>
    par cpontre si quelqu'un peut me dire pourquoi je ne peut swapper qu'eun fois une ligne ... malgré le cloneNode true les évènements dynamiques ne sont pas reproduits ?

  7. #7
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Points : 96
    Points
    96
    Par défaut
    oui effectivement je viens de tester et au bout d'une moment ca swap plus...

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    lol y'a vraiment des fois je suis très con !!!


    c'est normal puisque je ne modifie pas les id ...
    le previsous Node étant calculé à partir du split - 1 ...

  9. #9
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Points : 96
    Points
    96
    Par défaut
    sinon ya ca:
    SWAP

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    ce qui nous donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <html>
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nouvelle page 1</title>
    </head>
    <script type='text/javascript'>
     
    function Tableau(){
     
    var Tab=document.createElement('table');
     
    var TabB=document.createElement('tbody');
    for (i=0;i<10;i++){
    						var TabL=document.createElement('tr');
    						TabL.id="ligne_"+i
    							for(j=0;j<5;j++){
    												var TabC=document.createElement('td')
    												TabC.innerHTML=i+'_'+j;
    												TabC.style.border="solid 1px black"
    												TabC.indiceLigne=i
    												//TabC.onclick=function(){alert(this.indiceLigne)}
    												TabC.ondblclick=function(){swapline(this)}
    												TabL.appendChild(TabC)
    												}
    					TabB.appendChild(TabL)
    					}							
     
    	Tab.appendChild(TabB)
    	document.body.appendChild(Tab)
    }
     
     
    function swapline(ligne){
    var AllLines=ligne.parentNode.parentNode.getElementsByTagName('tr')
    var ActiveLine=ligne.parentNode.rowIndex
    var PreviousLine=AllLines[ActiveLine-1]
     
     
    ligne.parentNode.parentNode.insertBefore(ligne.parentNode,PreviousLine)
    }
     
    </script>
     
    <body onload="Tableau()">
     
     
    </body>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/09/2010, 17h36
  2. intervertir des lignes d'un tableau
    Par vasilov dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 30/05/2008, 15h34
  3. Marge entre deux lignes d'un tableau
    Par Kevin.Perez dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 12/03/2007, 12h29
  4. Réponses: 10
    Dernier message: 07/12/2006, 20h52
  5. [SQL serv 2000] intervertir deux lignes
    Par igorzup dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/08/2006, 09h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo