Preservar estados de casilla de verificación en la misma página con resultados de consulta

votos
1

Estoy usando django, y tengo una página web estática con un formulario GET y unas 30 casillas de verificación. El usuario selecciona varios cuadros y hace clic en Buscar, y un resultado de una base de datos se devuelve a la misma página en una tabla. Sin embargo, todas las casillas de verificación se han borrado, ya que HTML no tiene estado.

¿Cuál es la solución más simple para recordar el estado de las casillas de verificación? He revisado los documentos de django, pero los ejemplos simplemente usan una variable y un IF para un formulario de texto único. Seguramente, no tengo que verificar si cada casilla está establecida en el querydict. Además, mi formulario fue creado a medida, en lugar de usar formularios django.

Eventualmente, estaba planeando usar JSON para la página y solo actualizar la tabla, y eso resolvería este problema, pero no estoy seguro de si introduciría muchas más, por ejemplo, el botón Atrás no funciona para búsquedas previas.

Publicado el 07/07/2009 a las 18:02
fuente por usuario
En otros idiomas...                            


4 respuestas

votos
0

Hay formas de solucionar el problema del botón Atrás (etiquetas hash y otras cosas adjuntas a una URL). Sin embargo, la forma en que siempre lo he logrado es solo por eso. Esencialmente, pasaría las casillas de verificación como una matriz en POST y luego, cuando vaya a hacerlas, simplemente haga un ciclo que hará todos los cuadros que necesita, y verifique con POST para ver si ha sido verificado o no. Aparte de eso, no sé.

Respondida el 07/07/2009 a las 18:06
fuente por usuario

votos
0

¿Usando GET? Bueno. Acceda a las casillas de verificación de la misma manera que accede a los datos del campo de texto.

request.GET ['yourfield']

Use staments de impresión para inspeccionar la información disponible en GET.

solicitud de impresión. OBTENER ['yourfield']

Respondida el 07/07/2009 a las 18:10
fuente por usuario

votos
2

"¿Cuál es la solución más simple para 'recordar' el estado de las casillas de verificación?"

Las transacciones web son sin estado.

Hay varias formas comunes de implementar el estado.

  1. Sesiones Si su usuario está conectado, tienen una sesión. Almacenar cosas en su sesión. La forma en que PUBLICAN entra en la sesión. Esto se puede recuperar para enviarles un nuevo formulario.

  2. Galletas. Las sesiones usan cookies. Puedes usar cookies manualmente Tu tienes dos opciones aquí.

    • Coloque la información del recuadro de formulario en la cookie. Enviarlo abajo con la respuesta. Compruebe la cookie en cada solicitud para saber con qué sembrar el formulario.

    • Pon una clave de sesión en la cookie. Esto es lo que Django hace por ti. No implemente esto usted mismo.

  3. Consultar cadenas en la URL. Usted tiene las mismas dos opciones que con las cookies. Haga que la configuración sea una cadena base64 muy antigua o pase una ID que represente a la sesión.

Respondida el 07/07/2009 a las 18:11
fuente por usuario

votos
0

Si estaba utilizando un objeto Form, entonces podría pasarle la solicitud al constructor y terminarlo. Si lo haces de forma manual, deberás financiarlo con la sesión.

Respondida el 09/07/2009 a las 07:43
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more