Comencé a trabajar en una página basada en PHP que ejecuta una consulta SELECT en una tabla de Postgres e imprime el resultado.
La página incluye un formulario (método POST) que se usa para filtrar los registros de la tabla, por ejemplo, mostrar solo los registros que tienen valores que se encuentran dentro de un rango mínimo/máximo particular para un campo en particular. El usuario puede ingresar valores en los campos mínimo/máximo del formulario, y una vez que presiona el botón de entrada de formularios, la consulta SELECCIONAR se ejecuta nuevamente con una restricción DONDE adecuada. Esta parte está funcionando bien.
Ahora, también quería incluir la capacidad para que el usuario ordene la tabla según cada campo. Entonces, con un uso simple de GET, puedo pasar los parámetros necesarios para ordenar la tabla a través de un href en cada encabezado de campo, por ejemplo, "a href="index.php?field=x&order=asc..", que aplica una restricción ORDER BY apropiada.Esto también funciona bien.
El problema es que, cuando el usuario hace clic en uno de los encabezados de la tabla para ordenar la tabla por ese campo, la página obviamente se actualiza y se pierden los filtros que se aplicaron a través del formulario.
¿Cuál es mi mejor opción para incorporar ambas características? Es decir, el usuario debería poder filtrar la tabla y luego ordenar los registros filtrados según el campo deseado.
¿Necesito volver a pensar cómo lo estoy haciendo por completo?
Siempre puedes usar sesiones para almacenar la publicación.
Luego, simplemente verifique si hay una publicación, guárdela en la sesión y siempre filtre por su sesión.
if($_SERVER['REQUEST_METHOD'] == 'POST'){ $_SESSION['filter'] = $_POST; } if(isset($_SESSION['filter'])){ //Run you query }