[RESOLU] fonction jquery recherche dans une seul colonne d'un tableau

Eléphant du PHP | 176 Messages

16 Nov 2016, 10:40

Bonjour à tous, pourriez vous m'aider?

J'ai cette fonction qui marche très bien qui permet de rechercher dans mon tableau

Code : Tout sélectionner

// recherche dans le tableau
    $("#search").keyup(function(){
        _this = this;
        $.each($("table tbody tr"), function() {
            if($(this).text().toLowerCase().indexOf($(_this).val().toLowerCase()) === -1)
               $(this).hide();
            else
               $(this).show();               
        });
    });
   



J'aimerais l'adapté pour la recherche dans une seul colonne mais cela ne fonctionne pas, dans ma fonction je récupère bien le champs dans ma liste sélectionné

Code : Tout sélectionner

   $("#search_service").on("change", this, function(event) {
      _this = this;
        $.each($("table tbody tr"), function() {
            if($(this).text().toLowerCase().indexOf($(_this).val().toLowerCase()) === -1)
               $(this).hide();
            else
               $(this).show();       
        });
   });



Merci de votre aide.

Avatar de l’utilisateur
Modérateur PHPfrance
Modérateur PHPfrance | 8410 Messages

16 Nov 2016, 15:54

salut,

a priori il te faut un récupérer ce qu'il y a dans le premier td (qui devrait la première colonne) pour limiter ta recherche.

une aide possible ici : http://codepedia.info/jquery-get-table- ... value-div/


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 176 Messages

17 Nov 2016, 10:23

Merci de ton aide,

Voilà comment j'ai fais

Code : Tout sélectionner

//recherche dans le tableau du service filtré
   $("#search_service").on("change", this, function(event) {
      _this = this;
        $.each($("table tbody tr"), function() {
            if($(this).find(".service").text().toLowerCase() === $(_this).val().toLowerCase())
            $(this).show();       
            else
            $(this).hide();
        });
   });


pour une ligne du type

Code : Tout sélectionner

         print '<td contenteditable="false" class="service" id="service'.$produit['id_inventaire'].'">'.$produit['service'].'</td>';