Pregunta

Tengo una aplicación web que entre otras cosas contiene una tabla de elementos creados usando una devolución de llamada Ajax. Un montón de campos de formulario en la parte superior de la tabla me permite filtrar los elementos que se mostrarán en la tabla de acuerdo a varios criterios, el documento presentado.

Algunas partes de la tabla tienen listas de elementos con una [X] marcadas junto a ellos que puedo eliminar haciendo clic sobre esos temas.

Ahora, si yo estuviera haciendo esto, el Ajax no / javascript manera, la página recibiría un montón de campos de datos enviados y luego haría que la tabla en consecuencia. Puedo hacer esto, pero me gustaría también Ajaxify toda la instalación. Mis preguntas son respecto a esto.

  1. ¿Cómo puedo crear el botón [X]. Un simple <a> haría "trabajo" pero es un GET modificar el estado por lo que no quiero hacer eso. La forma en que estoy haciendo ahora es una forma diminuta con un parámetro oculto que mantiene el elemento a borrar y un estilo botón que está en la [x] enviar. Si ajaxify esto, puedo obtener la respuesta y hacer lo necesario.

  2. ¿Cómo puedo mantener mi SECO backend? Yo no quiero tener dos bits completamente diferentes de código para la versión Ajaxified y los regulares. Lo que estoy haciendo en este momento es tener la versión no ajax someterse a una dirección URL que cambia el estado y luego se redirige a la página principal de nuevo (similar a un sistema de tipo PRG). Con el Ajax activado, simplemente me llamo la URL e ignorar la redirección, pero utilizo los datos devueltos para ajustar la tabla. ¿Es esta la manera "correcta"?

  3. Cualquier otro consejo sobre degradación elegante sobre cómo mantener mi SECO back-end

¿Fue útil?

Solución

Me pondría a cada fila en su propia forma (con method='POST'), e incluyen un campo oculto para decir qué elemento se va a eliminar. El [X] sería enviar el formulario, y en la forma de presentar caso, si no hay XmlHttpRequest está presente simplemente enviar el formulario al servidor que elimine el elemento y la redirección a la misma página de nuevo (esta es una buena práctica para evitar una recarga desde volver a enviar el Mensaje borrar).
Si un XmlHttpRequest está presente, configurarlo para que POST con el id de la que hay que eliminar y quitar la fila si la petición tuvo éxito. Se podría establecer un indicador en la petición AJAX para que redirección no sucede, sólo un éxito (200 OK).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top