Foros del Web » Programación para mayores de 30 ;) » Programación General »

Enviar mas de 1 vez el mismo formulario

Estas en el tema de Enviar mas de 1 vez el mismo formulario en el foro de Programación General en Foros del Web. Cuando el usuario presiona el botón enviar se ejecuta el cgi correspondiente que tiene una demora, dependiendo de la velocidad de conexión y la pc ...
  #1 (permalink)  
Antiguo 13/10/2004, 14:04
 
Fecha de Ingreso: septiembre-2004
Mensajes: 1
Antigüedad: 19 años, 7 meses
Puntos: 0
Enviar mas de 1 vez el mismo formulario

Cuando el usuario presiona el botón enviar se ejecuta el cgi correspondiente que tiene una demora, dependiendo de la velocidad de conexión y la pc del usuario.
Durante este tiempo el formulario permanece activo en el navegador y el usuario puede volver a enviar 2 o 3 veces el mismo formulario hasta que aparece la respuesta generada por el cgi, pensando que no habia hecho nada.
Existe alguna forma de bloquear el formulario en forma instantanea una vez pulsado el boton de enviar mientras esta ejecutando el cgi?
  #2 (permalink)  
Antiguo 13/10/2004, 14:19
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Si, se puede pero se hace a travez de javascript que se ejecuta en el navegador del usuario. Esto tiene la contra de que puede no andarte en todos los navegadores...Para darte una idea en este ejemplo le dices al usuario que si lo quiere enviar clinquee aceptar y espere unos segundos

Código:
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript">
function mensaje() {
alert('Enviar Formulario ? Clickee aceptar y espere unos segundos');
}
</script>
</head>

<body>
<form name="form1" method="post" action="tuscript.pl" onSubmit="mensaje()">
  <p>
    <input type="text" name="textfield">
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>
</body>
</html>
Espero que te sirva, saludos !!!
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 13/10/2004, 14:22
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Hola, le hice una pequeña modificación al javascript y ahora se envia y te bloquea el botón de enviar

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript">
function bloquear() {
form1.Submit.disabled = true;
}
</script>
</head>

<body>
<form name="form1" method="post" action="tuscript.pl" onSubmit="bloquear()">
  <p>
    <input type="text" name="textfield">
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>
</body>
</html>
Lo voy a poner en el FAQ de PERL

Saludos
__________________
Esteban Quintana

Última edición por monoswim; 13/10/2004 a las 14:38
  #4 (permalink)  
Antiguo 13/10/2004, 17:32
 
Fecha de Ingreso: mayo-2003
Mensajes: 328
Antigüedad: 21 años
Puntos: 0
Y mejorando el código de monoswim, aparte de bloquear el botón de submit, le puedes cambiar el texto para que diga: "Procesando...espera unos segundos".

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript">
function bloquear() {
form1.Submit.disabled = true;
form1.Submit.value = "Procesando...espera unos segundos";
}
</script>
</head>

<body>
<form name="form1" method="post" action="tuscript.pl" onSubmit="bloquear()">
  <p>
    <input type="text" name="textfield">
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>
</body>
</html>

SALUDOS
__________________
Uriel Lizama, Perl Developer

Aprende Perl en Perl en Español.
  #5 (permalink)  
Antiguo 14/10/2004, 05:43
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
me gustó, lo voy a poner en el faq...

Saludos
__________________
Esteban Quintana
  #6 (permalink)  
Antiguo 14/10/2004, 16:47
Avatar de boilmar  
Fecha de Ingreso: marzo-2002
Mensajes: 31
Antigüedad: 22 años, 2 meses
Puntos: 0
Otra forma similar:

<script LANGUAGE="JavaScript">
<!--
var cuenta=0;
function enviado() {if (cuenta == 0){cuenta++;return true;}else{alert("Un momento, por favor, el mensaje se está enviando.");return false;}}
// -->
</script>

<form method="POST" action="script.pl" onSubmit="return enviado()">
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:45.