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 :

Filtrage de résultats


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 402
    Par défaut Filtrage de résultats
    Bonjour,

    Je filtre une liste de résultats avec un formulaire. Avec le code suivant, j'affiche dans des span les filtres en cours extraits des différents champs de ce formulaire. Pour les selects, je récupère le text de l'option sélectionnée; pour les inputs, je récupère leur value. Dans chaque span, je donne, en outre, la possibilité de supprimer le filtre associé en réinitialisant la valeur du champ correspondant.

    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
     var selects = $('.selcrit');
     var inputs = $('.inputcrit');
     var querysel  = new Object();
     var queryinp  = new Object();
    $("#btSubmit").click(function(){ 
        $('#criteres').empty();
         selects.each(function(){
         var critere  = $(this).data("typefiltre");
         var value =  $(this).find("option:selected").text();
         querysel[critere] = value;
        });
        inputs.each(function(){
        var critere  = $(this).data("typefiltre");
        var value =  $(this).val();
        queryinp[critere] = value;
        });
        var addcrit = $.extend({}, queryinp, querysel);
         $.each(addcrit, function(key, element) {
             if(element !='Tous' && element != 'Toutes' && element != ''){
             var afficheCriteres  = ' '+key+' : '+element;
             $('#criteres').append('<span class="tagcrit"data-idcrit="'+key+'">'+afficheCriteres+
             '<sup class ="suppcrit" style="color: red;cursor: pointer;"> x </sup></span>');
             } 
          }); 
    }); 
    $(document).on("click",".tagcrit", function() {
        var idc = $(this).data("idcrit");
        $("[data-typefiltre='"+idc+"']").val('');
        $("[data-typefiltre='"+idc+"option[value='']").prop('selected', true);
        $(this).remove();
    });
    Code html : 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
    <input type="text" data-typefiltre = "mot-clé(s)" id="mot-clé(s)" class="inputcrit"/>
    <input type="text" data-typefiltre = "auteur" id="auteur" class="inputcrit"/>
    <br/><br/>
    <select  data-typefiltre = "éditeur" id="éditeur"class="selcrit">
    <option value="">Tous</option>
    <option value="1">Albin Michel</option>
    <option value="2">Michel Lafon</option>
    <option value="3">Sonatine</option>
    </select>
    <select  data-typefiltre = "librairie" id="librairie"class="selcrit">
    <option value="">Toutes</option>
    <option value="1">Fnac</option>
    <option value="2">Richer</option>
    <option value="3">Contact</option>
    </select>
    <br/><br/>
    <input type="button" id="btSubmit" value="go"/>	
    <br/><br/>
    <span id="criteres"></span>
    Mon code test est ici : http://jsfiddle.net/3p8Gv/7/
    Il est fonctionnel mais je reste persuadé qu'il peut être optimisé. Le code actuel a d'ailleurs un inconvénient : il n'affiche pas les critères de filtre dans l'ordre dans lequel ils sont ajoutés après le clic.

    Qu'en pensez-vous ? Merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 402
    Par défaut
    Bonjour,

    Avez-vous une idée sur mon sujet ? Merci.

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/03/2014, 10h18
  2. [XL-2007] Résultat différent entre filtrage et NB.SI()
    Par marc56 dans le forum Excel
    Réponses: 2
    Dernier message: 19/04/2011, 05h21
  3. [MySQL] Filtrage des résultats à partir d'une requête
    Par isitien dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 03/02/2009, 10h10
  4. [MySQL] Filtrage par ma requête sql en fonction du résultat d'un combo box
    Par digger dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/02/2006, 17h25
  5. Filtrage des résultats d'un état
    Par Robson33 dans le forum IHM
    Réponses: 7
    Dernier message: 23/11/2005, 20h58

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