Posted by f3nixl on March 2, 2011 at 5:57pm
Buenas, he estado manejando drupal ya un tiempo y he estado teniendo unos detalles al momento que por ejemplo en el formulario de contacto le dan (n) veces clic para enviar la información (motivo: ó la conexion esta muy lenta y piensan que no se esta enviado ó simplemente le dan varios clic al boton de enviar en fin) la cual me notifica mandandome un email el cual las (n) veces que dieron clic son las veces que se me envian.
De igual forma en algunos otros formularios me pasa ese detalle, mi duda es ¿como evitar ó como configurar para que procese solo una vez la información?
Gracias, saludos

Comments
puesss
pues ese problema no es de drupal solamente, supongo que es de cualquier aplicación web corriendo en un servidor lento. Creo que la solución sería optimizar tu aplicación para que responda más rápido a las peticiones de los usuarios o cambiar a un servidor más rápido.
Si ninguna de estas es posible, otra opción es adjuntar algun efecto con javascript para que aparezca cuando le dan click al botón de enviar formulario, de esta manera inmediatamente el usuario vería que la aplicación ya se dió cuenta que le apretaron al botón y nada más está tardando un poco en procesarla.
lo puedes solucionar con javascript
exacto @jackbravo lo puedes solucionar con javascript, @f3nixl aquí encontrarás algunos ejemplos de como desabilitar el boton
http://rockycode.com/blog/upload/jtsnake/demo-safesubmit.html
http://www.mkyong.com/jquery/how-to-disable-submit-button-after-clicked-...
--
Jesus Manuel Olivas
http://jmolivas.com
--
http://jmolivas.com/
@jmolivas
Muchas gracias por responder,
Muchas gracias por responder, pues no es tanto lo del servidor ya que esta en un servidor dedicado es mas que nada de la conexion de los usuarios que es lenta, internamente al realizar un submit en el formulario independientemente del numero de veces q le des clic al boton enviar se debe procesar una sola vez, lo que no entiendo bien es el porque como que se van quedando en cola ó espera cada uno de los clic al boton enviar, a nivel de integridad de la información, usualmente solo se esta almacenando un registro pero hay casos donde si procesa 2 veces el registro, pero lo que si me envia son varios correos, es buena sugerencia lo de inhabilitar el boton de envio
por qué sucede
del por qué sucede esto, pues es por como funciona el protocolo HTTP.
El usuario le da click al botón enviar, lo que ocasiona una petición POST al servidor web de drupal, si el navegador todavía no obtiene una respuesta del servidor pues va a seguir mostrando la página, por lo que el usuario le da otro click mandando nuevas peticiones POST con la misma información que drupal felizmente contestará. Hasta que la respuesta del servidor web llegue al navegador se dejará de mostrar el formulario.