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

jQuery Discussion :

Modifier des cellules de tableau avec un sélecteur


Sujet :

jQuery

  1. #1
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut Modifier des cellules de tableau avec un sélecteur
    Bonjour à tous,

    Je coince sur une problématique peu complexe (enfin je pense) sur le thème du tableau
    Je souhaite proposer un tableau avec au bout de la derniere de ligne un bouton "Ajout" pour ajouter une ligne supplémentaire au tableau. Sur les autres lignes déjà existante je souhaite avoir un bouton de suppression de la ligne (cf. piece jointe).

    Pour vous exposer mon problème voici un exemple simple. Tout d'abord mon code HTML:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <TABLE id="myTable">
    <TBODY>
    <TR>
    <TD>..</TD>
    <TD>...</TD>
    <TD><A style="DISPLAY: none" id="addBtn" href="#"><IMG title="Add" alt="Add" src="/Images/add.png"></A></TD>
    </TR>
    </TBODY>
    </TABLE>

    Puis le code JS:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    $("#addBtn").click(function () {
            // pour ajouter une ligne
            $('#myTable tbody>tr:last #addBtn').hide();
            $('#myTable tbody>tr:last').clone(true).insertAfter('#myTable tbody>tr:last');
            $('#myTable tbody>tr:last #addBtn').show();
     
            //pour modifier la dernière cellule de l'avant dernière ligne en delete
            var beforeLastTr = $('#myTable tbody>tr:last').prev().get(0);
            var oldHref = $('#myTable tbody>tr:last #addBtn').get(0);
    });

    Vous pouvez voir que je tente via 2 selecteur de récupérer la dernière cellule de l'avant dernière ligne et je les affecte à 2 variables.
    Ma variable beforeLastTr contient la ligne entière du tableau (tr) et je ne sais pas comment manipuler cette variable pour récupérer ma dernière cellule.
    Ma variable oldHref récupère le lien que je crée MAIS sur la dernière ligne et non sur l'avant dernière.

    Bref, les solutions ne m'offre pas ce que je souhaite. Et je constate que ma problèmatique est plus général à JQuery. Je sais comment utiliser mon selecteur et comment utiliser les méthodes associés mais je n'arrive pas à jongler avec correctement ...
    comment réutiliser un object (par exemple beforeLastTr ) pour le "requeter" via un selecteur Jquery ??

    J'espère avoir été clair

    Merci par avance
    Images attachées Images attachées  

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  2. #2
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Je suis en train de voir ce que je peux te proposer...

    Voici un début, je continue à travailler dessus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    				var arr = $('#myTable tbody>tr')
    				$.each(arr, function(i,val) {
    					if (i == arr.length-1)
    						return
    				        $(val).find("td:last").html("delete");
    				});
    Cela écrit simplement "delete" sur le dernier td de chaque ligne, sauf sur la dernière. Reste à mettre le liens pour vraiment supprimer la ligne...
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  3. #3
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    Merci pour ce premier jet

    Je continue de fouiller de mon côté aussi

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  4. #4
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut
    Voila un code fonctionnel :

    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
    <html>
    <head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <script src="http://code.jquery.com/jquery-1.7.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
     $(document).ready(function() {
           $("#addBtn").click(function () {
            // pour ajouter une ligne
    				var lastId = 0
    				lastId = $('#myTable tbody>tr:last').attr('id')
    				$('#myTable tbody>tr:last #addBtn').hide();
    				$('#myTable tbody>tr:last').clone(true).insertAfter('#myTable tbody>tr:last');
    				$('#myTable tbody>tr:last #addBtn').show();
    				$('#myTable tbody>tr:last').attr('id',parseInt(lastId)+1);
    				var arr = $('#myTable tbody>tr')
    				$.each(arr, function(i,val) {
    					if (i == arr.length-1)
    						return
    						$(val).find("td:last").html('<a href="#" OnClick=\'$('+ '"#' +  parseInt($(val).attr('id')) + '"'  + ').remove();return false;\'>delete</a>');
    				});
    			});
    		});
    </script>     
    </head>
     
    <body>
     
    <TABLE id="myTable">
    <TBODY>
    <TR id=1>
    <TD>AAAAAAA</TD>
    <TD>AAAAAAA</TD>
    <TD><A id="addBtn" href="#">add</A></TD>
    </TR>
    </TBODY>
    </TABLE>
     
    </body>
    </html>
    A voir si ça peut être amélioré.
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  5. #5
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    Merci pour ton aide

    Au final j'ai utilisé la méthode live() de jQuery et j'ai 2 handlers pour l'add et pour le delete ainsi pas besoin de gérer le click à la création de l'item dans la cellule

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 22/02/2014, 11h51
  2. Fonction de calcul avec des cellules de tableau HTML
    Par Gannox dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/09/2012, 07h28
  3. Ajouter des cellules à un tableau
    Par rambc dans le forum jQuery
    Réponses: 0
    Dernier message: 27/11/2010, 13h08
  4. modifier les cellule d'EXCEL avec textbox
    Par Philippe76 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/02/2009, 08h56
  5. [VBA] Modifier des cellules excel en fonction de leur couleur
    Par Tententai dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/03/2007, 18h14

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