J'ai créé un filtre en utilisant un formulaire avec des listes déroulantes. Le filtre est utilisé pour filtrer les résultats d'une base de données mySQL. Le formulaire est traité sur la même page que les résultats. Je veux faire en sorte que les listes déroulantes du filtre conservent les paramètres du filtre une fois que les résultats ont été filtrés.
J'ai déjà fait cela par le passé en utilisant une session, cependant c'était quand j'utilisais une autre page pour traiter la requête. J'ai essayé d'appliquer cette même théorie mais cela ne fonctionne pas. J'ai cherché sur ce site ainsi que sur Google et je n'ai trouvé que des réponses liées à une page séparée pour le traitement.
Actuellement, le code que j'ai ne pré-remplira le formulaire qu'après avoir été soumis deux fois. La première fois qu'il est soumis, il affiche le paramètre par défaut "Sélectionner..."
Voici les sections pertinentes de mon code :
session_start();
if(isset($_SESSION['submitted_filter_values']))
{
extract($_SESSION['submitted_filter_values']);
}
Sélectionner...
value="PDM">PDM
value="TB">TB
value="JNL">JNL
$_SESSION['submitted_filter_values'] = $_REQUEST;
J'ai essayé de placer la variable de session à différents endroits mais cela n'a pas fonctionné. J'ai pensé que peut-être rafraîchir la page fonctionnerait mais ensuite je me suis dit que cela supprimerait effectivement le filtre comme cela se produit lorsque je soumets le formulaire deux fois. Point intéressant à noter est que c'est très cohérent en ce sens qu'il fonctionne littéralement une fois sur deux, donc à chaque soumission impaire il ne se pré-remplit pas et à chaque soumission paire il se pré-remplit.