Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récuperer valeur d'un td d'une table générer auto

    8 juillet 2019 à 10:13:15

    Bonjour à tous,

    Mon programme exécute une requête ajax qui récupèrent des données et les affiches dans un tableau via jquery:

    Une fois ce tableau afficher pour l'utilisateur. L'utilisateur peut décider de cliquer sur une ligne du tableau pour avoir plus de détails. Ce dont j'ai besoin c'est de récupérer la valeur d'un td pour faire une redirection vers une autre page qui aurait en paramètre ce td

    La commande ci-dessous ne fonctionne pas sur un tableau générer dynamiquement mais uniquement sur un tableau créer en HTML.

    $('#tab-variance-actif tbody tr').click(function(e)

    Des idées?

    • Partager sur Facebook
    • Partager sur Twitter
      8 juillet 2019 à 11:57:37

      Bonjour ,

      Tu peux utiliser la délégation d'événement pour résoudre ton problème (https://api.jquery.com/on/#direct-and-delegated-events) . Cela consiste à utiliser la notion de propagation afin de mettre e place un écouteur sur un objet "ancêtre" de celui que tu veux cibler. Pour cela, tu dois utiliser la méthode on et indiquer le type d'éléments que tu veux écouter en 2eme paramètre

      $('#tab-variance-actif tbody').on('click', 'tr',function(e){..})



      -
      Edité par AnneHuard 8 juillet 2019 à 12:03:28

      • Partager sur Facebook
      • Partager sur Twitter
        8 juillet 2019 à 18:59:12

        Bonjour JonathanEH,

        Normalement tu dois pouvoir récupérer dans l'objet Event la propriété target qui correspond au TD cliqué

        Un exemple :

        https://codepen.io/Zonecss/pen/YoOQWR

        • Partager sur Facebook
        • Partager sur Twitter
        Découvrez les Css avec la zonecss.fr
          18 juillet 2019 à 17:30:42

          Bonjour à tous et merci.

          AnneHuard, oui avec un tableau créer en HTML cela ne pose pas de problème j'arrive à  récupérer les infos dont j'ai besoin mais étant donné que je récup les données via ajax je créer le tableau en jquery avec un append(<tr><td>....) et depuis ce tableau générer, le code ci-dessous ne fonctionne plus

          $('#tab-variance-actif tbody').on('click', 'tr',function(e){..})


          AliasDmc, oui cela fonctionne également mais pas avec un tableau créer par jquery du moins comme ça:

          • Partager sur Facebook
          • Partager sur Twitter
            18 juillet 2019 à 18:00:12

            Bonjour,

            Que le DOM soit généré suite à l'analyse de la page hTML ou suite à une requête ajax, cela ne change pas le fonctionnement donc les 2 solutions fonctionnent, dans la solution que je te propose, l'écouteur étant mis sur l'élément tbody, le seul cas où cela ne fonctionnerait pas serait si cet élément tbody était recréé suite à la reception des données ajax ce qui n'a pas la'air d'être le cas dans le bout de code que tu as fourni. 

            Pour la solution fournie par AliasDMC,cela fonctionne aussi car les écouteurs sont mis en place lors de la création des éléments dans le DOM

            PAr contre ce que je ne comprends pas, ce sont les ids que tu utilises

            • dans ton premier post tu faisais référence à un élément ayant pour id : #tab-variance-actif
            • et dans le code d'ajout, tu stockes les tr dans #tab-variance-tout. 

            A mon avis ton problème vient plutôt de là ...

            • Partager sur Facebook
            • Partager sur Twitter
              18 juillet 2019 à 18:00:58

              Bonjour JonathanEH,

              Cela me semble etrange, pour moi cela devrait aprioris fonctionner

              Que que vaut ta variable 'tableau' au départ

              • Partager sur Facebook
              • Partager sur Twitter
              Découvrez les Css avec la zonecss.fr
                18 juillet 2019 à 18:32:02

                Bonjour,

                Voici un exemple avec un tableau généré après l'écoute de l'éléments table parent (ton #tab-variance).
                Tu surveille l'éléments table, lorsqu'il y a un clique dessus tu a un event, tu check la target 

                • Partager sur Facebook
                • Partager sur Twitter

                    !

                  19 juillet 2019 à 10:38:17

                  AnneHuard, ça fonctionne! J'ai mixé vos trois solutions AliasDmcAngelisium

                  Merci à vous

                  Question 

                  les pushs, joins pour des tableaux vous me le conseillez par rapport à une utilisation classique?

                  Maintenant que j'arrive à récupérer la valeur d'un TD, j'aimerais pouvoir que lorsque l'on clique sur n'importe quel ligne (tr) je puisse prendre la valeur du premier TD ici A897542 (ce sont des fausses valeurs bien-sûr)

                  Je connais l'existence de la fonction eq() mais je n'arrive pas vraiment à la mettre en place

                  -
                  Edité par JonathanEH 19 juillet 2019 à 10:39:16

                  • Partager sur Facebook
                  • Partager sur Twitter
                    19 juillet 2019 à 12:15:25

                    Je t'ai fait un exemple ici en gros, je récupère le premier éléments enfant de l'éléments parent (quand la cible du clique est un TD).
                    Sinon (dans le cas d'un clique réaliser en javascript, ou d'un design exposant des zones cliquable de la table n'étant pas un TD ou un TH) si l'éléments cliquer est un TR, je récupère juste son premier éléments enfant.

                    Tatoukapté ? :3

                    • Partager sur Facebook
                    • Partager sur Twitter

                        !

                      19 juillet 2019 à 12:59:35

                      Ouais c'est propre et logique merci, il existe un équivalent en Jquery?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        19 juillet 2019 à 13:15:19

                        C'est en JQuery.

                        Edit: Ou pas x)
                        En full Jquery : $(eVe.target).parent().children().eq(0).text()

                        -
                        Edité par Angelisium 19 juillet 2019 à 13:19:18

                        • Partager sur Facebook
                        • Partager sur Twitter

                            !

                          19 juillet 2019 à 13:34:29

                          Parfait!!! Merci.

                          Ça fonctionne par contre j'ai une violation:

                          • Partager sur Facebook
                          • Partager sur Twitter
                            19 juillet 2019 à 14:39:03

                            Montre ton code '-'
                            • Partager sur Facebook
                            • Partager sur Twitter

                                !

                              19 juillet 2019 à 18:21:50

                              Bonjour JonathanEH,

                              Normalement  e.currentTarget= ton TR

                              e.currentTarget.children[0].textContent


                              ou

                              e.currentTarget.firstElementChild.textContent



                              -
                              Edité par AliasDmc 19 juillet 2019 à 18:22:55

                              • Partager sur Facebook
                              • Partager sur Twitter
                              Découvrez les Css avec la zonecss.fr

                              Récuperer valeur d'un td d'une table générer auto

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown