Foros del Web » Programando para Internet » PHP »

Cargar formulario en la misma pagina

Estas en el tema de Cargar formulario en la misma pagina en el foro de PHP en Foros del Web. La cosa es que tengo un formulario con action $_SERVER['PHP_SELF'] Puse un if(isset($_POST['submit'])) { para que cuando se clickee el boton submit pase algo, la ...
  #1 (permalink)  
Antiguo 06/01/2008, 11:39
 
Fecha de Ingreso: diciembre-2007
Mensajes: 50
Antigüedad: 16 años, 4 meses
Puntos: 0
Cargar formulario en la misma pagina

La cosa es que tengo un formulario con action $_SERVER['PHP_SELF']

Puse un if(isset($_POST['submit'])) {

para que cuando se clickee el boton submit pase algo, la cosa es que se "apreta" el boton cuando actualizo la pagi na, como evito esto?
  #2 (permalink)  
Antiguo 06/01/2008, 12:23
jpeeri
Invitado
 
Mensajes: n/a
Puntos:
Re: Cargar formulario en la misma pagina

¿Cómo que se apreta el botón?
  #3 (permalink)  
Antiguo 06/01/2008, 13:27
 
Fecha de Ingreso: diciembre-2007
Mensajes: 50
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Cargar formulario en la misma pagina

Claro, la secuencia del if la cumple igual cuando refresheas la pagina, aprietes o no el submit..
  #4 (permalink)  
Antiguo 06/01/2008, 15:32
jpeeri
Invitado
 
Mensajes: n/a
Puntos:
Re: Cargar formulario en la misma pagina

Pero ¿después de apretar el botón?
  #5 (permalink)  
Antiguo 06/01/2008, 15:50
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Cargar formulario en la misma pagina

Ese será siempre el problema de enviar datos al navegador en la misma página que procesa el formulario. Al darle en actualizar despues de enviarlo, el navegador (OJO) envia nuevamente los datos del formulario, haciendo que tu rutina en el if se ejecute nuevamente. La única solución es que después del procesar el formulario redirijas a otra página [usando un header()] [inclusive puede ser la misma página], pero ya no va a ser llamada por un método POST, sino simplemente GET.

Algo así:

Código PHP:
if(isset($_POST['submit'])) {
/// bla bla bla...
header("Location: $_SERVER[PHP_SELF]?$_SERVER[QUERY_STRING]&desdeformulario";
} elseif(isset(
$_GET['desdeformulario'])) {
echo 
"gracias por llenar el formulario";
} else {
//Muestras tu formulario

Un saludo,
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 08:06.