Foros del Web » Programando para Internet » PHP »

Como enviar un form a través de la misma página

Estas en el tema de Como enviar un form a través de la misma página en el foro de PHP en Foros del Web. Hola de nuevo!! Me explico, se que es algo básico y muy fácil , pero no lo consigo ni a la fuerza, el tema es ...
  #1 (permalink)  
Antiguo 21/01/2006, 21:25
Avatar de rbczgz  
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.209
Antigüedad: 14 años
Puntos: 148
Como enviar un form a través de la misma página

Hola de nuevo!!

Me explico, se que es algo básico y muy fácil , pero no lo consigo ni a la fuerza, el tema es el siguiente:

Tengo una página en php que contiene un formulario y pretendo enviarlo a través de sí mismo, es decir, la página que contiene el form, pongamos que es form.php y lo que quiero hacer es:

<form action="form.php" method="POST">.

No se si tendrá algo que ver que al form le paso la mayoría de los valores de los campos mediante GET, o sea quedaría así:

<a href="w.dom.com/form.php?c1=1&c2=2&c3=3&c4=4&c5=5&c6=6">enlace</a>

Y una vez en la página (con lo campos ya llenos) necesito enviarla pero con el action a sí misma, y esto último es lo que no consigo hacer.

¿Alguien me puede echar un cable?

Muchas gracias.
  #2 (permalink)  
Antiguo 21/01/2006, 21:33
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
imagino que es el procesamiento lo que te complica, la forma de solucionar esto es agregar una comprobación al principio de la página: si no está vacía la matriz $_POST, quiere decir que acabo de enviar el formulario, por lo que comienzo a procesarlo.

Cuando termina el procesamiento, conviene hacer una redirección con header() para evitar el efecto de que al recargar la página se envíe de nuevo el formulario.
se puede redireccionar a la misma página, eso no es importante.
Después de la redirección usás exit para asegurarte de que no se haga nada que no se deba hacer, y pronto.

En sí es lo mismo que harías si el destino del formulario fuera una página distinta.


Saludos.
  #3 (permalink)  
Antiguo 21/01/2006, 21:33
Avatar de kalolo  
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 12 años, 7 meses
Puntos: 0
espero entender bien,..., quieres que al dar ejecutar... la pagina que contiene tu forma (form.php es la pagina) ... va recibir esos valores y los va procesar? si es eso..

nomas ponle action=form.php

y los valores que recibas por el post recibelos como $c1=$_GET['c1'] ....

lo que puedes hacer es que tu pagina va tener dos estados
uno donde los campos de texto van estar vacios y otro cuando ya los mandes llenos...
No se si sea la mejor manera.. pero yo lo que evaluo normalmente es el boton
Código PHP:
if(isset($_POST['Submit']))//<- si el boton existe.
{
  
$c1=$_GET['c1']; /*<- si esque los mandas con un link form.php?c1=23 osease getvars */
  
$c2=$_POST['c2'];//<- Si los datos los recibe via postvars
  
....
}
else
{
  
//Mostramos el html con la forma

La forma si tiene action form.php
__________________
There is no place like 127.0.0.1
  #4 (permalink)  
Antiguo 21/01/2006, 21:39
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
kalolo, $_POST['submit'] va a estar definida únicamente si hay un campo con ese nombre, lo que no es siempre verdadero. Sé que hay programas que al agregar un botón de envío le dan un nombre automáticamente, pero no suele ser así cuando uno escribe el código a mano.
Creo que es importante aclarar que no por enviar un formulario va a estar definida una variable $_POST['submit']

Saludos.
  #5 (permalink)  
Antiguo 21/01/2006, 22:23
Avatar de kalolo  
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 12 años, 7 meses
Puntos: 0
por eso aclare si el boton existe :P... tomando el caso en un formulario sencillo :) donde la accion del formulario la ejecute el boton... culla accion sera ir a la misma pagina, pasando todos su valores por medio de postvars.

saludos!
__________________
There is no place like 127.0.0.1
  #6 (permalink)  
Antiguo 22/01/2006, 08:30
Avatar de rbczgz  
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.209
Antigüedad: 14 años
Puntos: 148
Pues soy muy torpe pero no hay manera, al final lo he hecho como de costumbre, enviándolo a otra página

Muchas gracias por la ayuda, pero no la he sabido aprovechar...
  #7 (permalink)  
Antiguo 22/01/2006, 11:00
Avatar de kalolo  
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 12 años, 7 meses
Puntos: 0
si quieres publica tu codigo =)... y te ayudamos a adaptarlo a una sola pagina

saludos!
__________________
There is no place like 127.0.0.1
  #8 (permalink)  
Antiguo 22/01/2006, 11:21
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.462
Antigüedad: 15 años, 4 meses
Puntos: 2100
Cita:
Iniciado por kalolo
No se si sea la mejor manera.. pero yo lo que evaluo normalmente es el boton
Buenas.

Yo una vez, tuve un problema, con IE. Resultaba, que al darle enter al formulario (no al botón), enviaba los datos (a la misma página) pero no enviaba los valores del submit.
Comprobaba el envío del form mediante el submit, como dices que haces normalmente, pero por alguna extraña razón (que por cierto, postée por aquí, pero no dimos nadie con la solución) no enviaba los valores que tuviera el submit. Al final tuve que comprobar el envío del form de otra manera, y todo bien.
Lo digo como anécdota mas que nada.
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 23:40.