Foros del Web » Programando para Internet » PHP »

Dos formularios, uno con get y otro con post

Estas en el tema de Dos formularios, uno con get y otro con post en el foro de PHP en Foros del Web. He visto que hay otros temas sobre dos formularios en el foro pero no me ayudan para mi caso. Tengo en la misma página un ...
  #1 (permalink)  
Antiguo 27/02/2010, 07:21
Avatar de meryabad  
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
Dos formularios, uno con get y otro con post

He visto que hay otros temas sobre dos formularios en el foro pero no me ayudan para mi caso.

Tengo en la misma página un formulario que paso por get con categorías y subcategorias y otro por el post con los datos sobre los productos.

Estoy en la página de actualización del prodcuto, cuando cambio en el formulario del get veo que en la barra de navegación me cambia los datos, pero en el echo de mi formulario no, luego no puedo incluir esos datos dentro de mi formulario post.

¿porqué tengo dos formularios? El primer formulario me sirve para que cuando seleccionas una categoría te aparezcan solo las subcategorías de esa categoría y para ello necesito enviar que categoria tengo y hacer el select cada vez que cambio. El Segundo formulario tiene los datos del producto desde su id.

El codigo resumido sería:

El formulario 1
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="get" name="formularioCat" id="formularioCat" >

que tiene dos select que cambia cuando lo pulsas con onchange='document.formularioCat.submit()

tengo el campo oculto id del producto para que no se pierdan los datos del producto al cambiar.

Y el formulario 2:
<form id="formulario" name="formulario" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>" enctype="multipart/form-data">

con un botón type="submit"
tengo campos ocultos de id del producto, del id categoria y subcategoria.

Espero haberme explicado bien. Solo necesito una orientación, pues lo quiero sacar sola, pero me ayudaría un ¿has pensado si puede ser...? jejeje gracias de antemano
  #2 (permalink)  
Antiguo 27/02/2010, 07:27
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Dos formularios, uno con get y otro con post

No se si responda a toda tu duda, pero ambos formularios son independientes el uno del otro. Osea si vos le das al boton submit del formulario con pasaje de datos GET, en la web que abras solo tendras acceso a los datos del vector $_GET, del otro formulario no tendras ninguna informacion.

Creo entender que no te salen los valores, no? hace un print_r($_GET) y fijate q valores tenes, por ahi hay algo mal en las asignaciones...

Saludos.
  #3 (permalink)  
Antiguo 27/02/2010, 07:31
Avatar de meryabad  
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Dos formularios, uno con get y otro con post

Cita:
Iniciado por MarioAraque Ver Mensaje
No se si responda a toda tu duda, pero ambos formularios son independientes el uno del otro. Osea si vos le das al boton submit del formulario con pasaje de datos GET, en la web que abras solo tendras acceso a los datos del vector $_GET, del otro formulario no tendras ninguna informacion.

Creo entender que no te salen los valores, no? hace un print_r($_GET) y fijate q valores tenes, por ahi hay algo mal en las asignaciones...

Saludos.
Si, los valores si me salen puesto que al mandar el id como campo oculto en el formulario 1 el formulario 2 tiene el dato necesario para rellenarse, buscando a partir de el con un select.

Lo que no hace es que el segundo formulario tome los nuevos valores que si aparecen en la barra de navegación y que por tanto están entrando correctamente desde el formulario 1 por el get.

Gracias de todas formas :)
  #4 (permalink)  
Antiguo 27/02/2010, 07:33
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Dos formularios, uno con get y otro con post

Y bueno, solo tenes q poner $_GET['indice'] para obtener el valor, no te sale tampoco? Igual siento q tenes otro problema q no termino de entender...
  #5 (permalink)  
Antiguo 27/02/2010, 07:35
Avatar de meryabad  
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Dos formularios, uno con get y otro con post

Lo que no hace es que el segundo formulario tome los nuevos valores que si aparecen en la barra de navegación y que por tanto están entrando correctamente desde el formulario 1 por el get.

:S

si hago el print, en un ejemplo, me da Array ( [id_categoria] => 39 [id_subcategoria] => 89 [id] => 283

cambio el select del formulario uno y en la barra del navegador me pone:
formularioProductos.php?id_categoria=18&id_subcate goria=25&id=283

y el print sigue siendo:
Array ( [id_categoria] => 39 [id_subcategoria] => 89 [id] => 283

No se si es por que no puedo tener dos formularios con distinto action en la misma página

Última edición por meryabad; 27/02/2010 a las 07:42
  #6 (permalink)  
Antiguo 27/02/2010, 07:40
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Dos formularios, uno con get y otro con post

Eso mismo, osea en el formulario con datos POST no podes ver los valores de la barra de navegacion, eso? Es por lo q te dije antes, q son los dos independientes...

Osea si creas un formulario asi

Código PHP:
<form id="formulario" name="formulario" method="post" action="<?php echo $_SERVER['PHP_SELF'?>" enctype="multipart/form-data">
La unica forma de ver los datos en la barra de navegacion seria agregandolos a mano en el action, por ejemplo algo asi:

Código PHP:
<form id="formulario" name="formulario" method="post" action="hola.php?nombre=meryabad" enctype="multipart/form-data"
Ahi cuando hagas submit todos los datos del vector $_POST estaran disponibles, adicionalmente $_GET['nombre'] dara como resultado 'meryabad', podes jugar con eso para que tengas dos tipos de datos en tu form.

Saludos.
  #7 (permalink)  
Antiguo 27/02/2010, 08:49
Avatar de meryabad  
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Dos formularios, uno con get y otro con post

Lo intente, tarde en releerlo varias veces para entenderlo jejeje pero tenía mucha lógica lo que me explicaste. Sigue sin funcionar pero creo que ya estoy orientada en el camino.

De momento entro a editar:

La dire es:
formularioProductos.php?id_categoria=39&id_subcate goria=89&id=283

El print del GET Array ( [id_categoria] => 39 [id_subcategoria] => 89 [id] => 283 ) 1
El print del POST me da: Array ( ) 1

Cambio la categoria y la subcategoría y en la barra de navegación veo los cambios:
formularioProductos.php?id_categoria=18&id_subcate goria=25&id=283

El print del GET cambia!!:
Array ( [id_categoria] => 18 [id_subcategoria] => 25 [id] => 283 )

El print del POST me da:
Array ( ) 1

Le doy a aceptar en formulario 2 y...

El Get me da MAL LA SUBCATEGORIA, no la categoria
Array ( [id_categoria] => 18 [id_subcategoria] => 89 [id] => 283 )

y el POST me da:
1Array ( [nombre] => X [referencia] => X [precio] => X [descuento] => X [descripcion] => X [id] => 283 [imagen_actual] => [pdf_actual] => ) 1

Ahora yo creo que ya es cosa mia, por que entra un dato pero el otro no. Voy a volver a revisar de nuevo otra vez todo el código y a ver si consigo saber que pasa.

Muchas gracias por la ayuda tan rápida MarioAraque!

Si lo consigo publicaré en que me equivocaba por si le sirve a alguien
  #8 (permalink)  
Antiguo 27/02/2010, 09:01
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Dos formularios, uno con get y otro con post

Lo que te recomiendo es que NO mires la barra de direcciones, si no que mires los contenidos de los vectores. Creo que no sabes las diferencias entre usar GET y POST.

Un formulario envia datos a otra pagina (en el action), y vos podes definir la forma en la que los envias (post o get). Cuando vos envias por post, NO podes enviar por get. Cuando presionas el boton submit (o submitis a mano el formulario con javascript), vos envias los datos al vector $_POST o $_GET dependiendo la forma de envio que hayas usado, pero mezclar ambas no podes.

La unica forma de poder tener acceso a ambos vectores es construyendo vos misma tus rutas.

Osea si vos creas un formulario con post (que es lo mas adecuado, get no uses), podes agregar en el action un enlace y agregarle mas datos, asi como lo hice con hola.php?nombre=meryabad .... y $_GET[nombre'] estara disponible en el vector $_GET, pero NO por que haya sido metido en el formulario, si no pq vos lo metiste a mano en el action....

La verdad no es facil de explicar por el foro, ojala pueda guiarte a una buena solucion.

Saludos.
  #9 (permalink)  
Antiguo 12/03/2010, 06:31
Avatar de meryabad  
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Dos formularios, uno con get y otro con post

Gracias por tu explicación Mario, la verdad es que la explicación que me dio el profe es que había dos métodos POST y GET y que por POST pasamos los datos ocultos y por GET los datos van en la barra de navegación. Pero gracias a ti he investigado más para dejarme claros los conceptos.

Como me dices, comprendo que no puedo enviar por POST y por GET a la vez, con eso contaba. Yo lo que quería es enviar por GET, recibir datos y luego esos datos poderlos mandar por POST.

Muchas gracias por ayudarme a orientar la cuestión.

Dejo aqui lo que he hecho para resolverlo y algunos errores que cometía por si son de utilidad para otro en mi misma situación:

Finalmente he pasado por campo oculto en el segundo formulario los id, pero recogiendolos del GET <input type="hidden" name="id_categoria" value="<?php echo $_GET['id_categoria'] ?>"/>, no como variable (puesto que de esta forma me guardaba el dato anterior y no "refrescaba").

Además me di cuenta que poniendo el mismo action="<?php echo $_SERVER['PHP_SELF'] ?>" en los dos formularios no funcionaba. El segundo action lo dejé vacio puesto que despues de actualizar tenía un header location para redirigir a donde yo quería. --> no se si esto es muy correcto, pero funciona jeje

Muchas gracias de nuevo por guiarme

Etiquetas: dos, post, formulario
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 05:44.