Bonjour,
j'ai un site web avec un filtre de recherche (semblable à celui de Google par exemple), on choisi les options de filtrage avec des listes déroulantes, mais pour que le filtre s'applique il faut que j'appui sur le bouton submit du formulaire.

Ma question est, comment procéder pour que le filtre s'éffectue directement après avoir selectionné une option dans la liste déroulante sans avoir recours à un bouton submit ?

J'ai posté dans cette section car mon problème est du HTML mais je doute que la réponse soit en HTML, alors veuillez m'escusez si je ne poste pas au bon endroit ;)
N'hésitez pas à demandez si vous voulez plus de détails. Merci d'avance.

5 réponses


Salut,

Effectivement c'est en js :

<select onchange="this.form.submit()">
    ...
</select>
gaalee
Auteur

Ha c'est parfait merci, mais il reste un dernier point sur lequel je ne sais pas comment procéder :
Comment faire pour garder en mémoire le choix que l'on vient de faire dans la liste pour qu'il reste comme choix par défaut ?

Oula faut nous en dire plus, la le plus simple si tu es sous php tu peux faire par exemple

echo'<select name="test"><option value="1" '.!empty($_POST['test']) && $_POST['test']==1?'SELECTED':null.'>Option 1</option></select>';
gaalee
Auteur

Le problème c'est que, quand j'utilise la solution en javascript, il ne me garde pas en mémoire ce que j'ai choisi. J'ai plusieurs filtres donc plusieurs <select> mais ducoup je ne peux pas utiliser deux filtres en même temps. J'envoi mes informations en GET, c'est peut être pour ça que je n'arrive pas à les mémoriser non ?

Oula... c'est un simple formulaire lui il garde aucun champs en mémoire, c'est côté serveur que ça ce passe, que ce soit post ou get. Après tu peux à la limite parser l'url pour remplir les formulaires, mais vu ton niveau en JS je pense que c'est pas la meilleures idée ^^.