Bonjour,

J'essaye de faire deux filtres avec un minimum de sens. C'est à dire que lorsque je selectionne un option d'un select, je souhaiterai que l'autre select n'est plus que les options où il y a un résultat (et vise versa).

Dans le doute, je vais imager ça.

Select 1 : Fruit, légume, vêtement.
Select 2 : Raisin, navet, cerise, calecon, chaussette, haricot vert.

Je selectionne "Vêtement" alors dans l'autre filtre toutes les options vont disparaitre sauf "calecon" et "chaussette".

Pour le moment mon code ressemble à ça :

https://jsfiddle.net/Vangelis36/a7m4ybLj/5/

C'est à dire que c'est un "ET" mais qui trouve les correspondances entre les filtres. Mais malheuresement je bloque sur l'affiche ou non des options...

Merci pour votre futur aide :)

8 réponses


Dois-je montrer mon code ici ou réexpliquer ? :/

Salut,

ce tuto peut peut-être t'aider, il est un peu ancien, mais la mécannique est toujours la même.
https://www.grafikart.fr/tutoriels/jquery/lier-select-313

Merci je vais voir ça !

Hum et bien je suis peut être nul mais je n'ai pas trouvé ma réponse :/ Son tutoriel permet d'aller dans un sens mais pas dans l'autre !

C'est possible au moins ce que je demande ?

(Son tutoriel permet d'afficher un select en fonction de l'option du premier select choisi. Moi je veux modifier les options de l'autre select en fonction de ce que j'ai choisi.)

J'ai mis à jour mon code.

J'arrive désormais à faire en sorte d'afficher les éléments en fonction du premier filtre (mais pas vise versa).
Mais mon second filtre ne fonctionne plus..

https://jsfiddle.net/Vangelis36/a7m4ybLj/11/

Bonjour.

(Son tutoriel permet d'afficher un select en fonction de l'option du premier select choisi. Moi je veux modifier les options de l'autre select en fonction de ce que j'ai choisi.)

C'est plus ou moins la même chose, la seule différence, c'est que toi tu affiches toutes les options du second select dès le départ.
Pour faire simple en suivant ton exemple, l'architecture est de ce genre :

  • Fruit
    • Raisin
    • Cerise
  • Légume
    • Navet
    • Haricot vert
  • Vêtement
    • Caleçon
    • Chaussette

Le premier niveau serait les catégories et le second les sous-catégories
Au lieu de n'afficher que les sous-catégories correspondants à la catégorie sélectionnée par l'utilisateur, tu affiches toutes les sous-catégories dès le départ, sans même que l'utilisateur ait faix un choix.
Le problème de ce système, c'est que si tu as par exemple une trentaine de sous-catégories, elles seront affichées dès le début et en contrepartit, si tu as par exemple une trentaine de données correspondants à chaque sous-catégories, tu vas afficher 30 * 30 données, soit 900 données au total d'affichées, ce qui va être lourd pour l'utilisateur.

Merci @lartak

D'accord mais on ne peut pas faire un système où les deux on le même traitement ?

J'ai peut être utilisé un mauvais exemple avec mes fruits et les légumes. En faite il n'y a pas de sous catégorie c'est pour ça que je me demande si il est possible de trier l'un en fonction de l'autre.

Nouvelle exemple :

Je suis un vendeur informatique donc j'ai deux filtres =

  • Ce que je vends (PC, carte mère, cg...)
  • A qui je l'ai vendu (Amazon, Google, Grafikart...)

Du coup si on trie "PC" j'aurai ce qui ont acheté "PC" et si je trie "Amazon" on verra tout ce qu'il a acheté.

Il n'y a pas un filtre plus fort que l'autre.

Effectivement, mais mes vrais filtres on entre 5 et 12 options.