Actualmente estoy desarrollando un diseño de tabla. Las tablas están usando un paginador y una función de filtro en PHP.

Todos los valores se transmiten como parámetros GET.

Por ejemplo, el paginador usará & limit = 20 & page = 5. El filtro se basa en una fila de tabla en el campo como campos de entrada. Lo que quiero decir es que cada columna tiene su propio campo de entrada.

Una vez que se hace clic en el botón de envío, pasará los datos a través de GET a sí mismo, por lo que la siguiente página consultará / filtrará los datos correctamente.

Por ejemplo, si quiero filtrar el código postal, la URL será la siguiente: & limit = 20 & page = 5 & postcode = 5

Porque estoy permitiendo que búsquedas como% 5% muestren todos los códigos postales donde 5 donde el resultado no se limita a 5 solamente. Mostrará todos los datos que tengan un 5 en cualquier punto del valor.

Sin embargo, si quiero filtrar los códigos postales que muestran todos los resultados con 58, escribiré% 58%. Según la codificación de URL, desafortunadamente, la URL no será & postcode =% 58% como se esperaba. Será & código postal = X%.

La pregunta es si de alguna manera es posible obtener los valores correctos en la URL.

El problema radica en el nivel del navegador. Si cambiara la URL de & postcode = X% a & postcode =% 58% directamente y pulsara enter, Chrome la traduciría directamente a X%.

Tal vez sea posible de alguna manera con metaetiquetas, encabezados http o Javascript, etc.

Lo estoy haciendo a través de GET en lugar de POST porque fue, aparentemente, más fácil de integrar con el paginador.

Perdón por mi mal ingles. Cualquier ayuda sería muy apreciada.

Muchas gracias.

0
Dusty48 18 oct. 2017 a las 23:01

3 respuestas

La mejor respuesta

Como menciona las búsquedas de %%, supongo que está utilizando MySQL u otro back-end de SQL para consultar los datos. En ese caso, sugeriría dejar la cadena de consulta siempre formateada como postcode = 58 & page = 1, y agregar algún otro parámetro para indicar si debería ser una búsqueda de% comodín% o coincidencia exacta, y si el parámetro comodín está allí, agregue el %% en el back-end al realizar la consulta.

0
billrichards 20 oct. 2017 a las 14:38

Debe urlencode sus valores antes de insertarlos en los parámetros.

Sin embargo, en general, si está usando mysql, estoy de acuerdo con billrichards.

1
refeniz 20 oct. 2017 a las 16:06

Deberías escapar del signo "%" en sí (eso sería "% 25"). PHP debería ser lo suficientemente inteligente como para decodificar eso automáticamente.

Entonces &postcode=%58% debería convertirse en &postcode=%2558%25, que PHP decodificará para que $_GET['postcode'] sea '%58%'.

2
rickdenhaan 18 oct. 2017 a las 21:44