Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[PHP] Problema con Variable GET y formulario POST (SOLVED)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Spanish
View previous topic :: View next topic  
Author Message
ZaPa
l33t
l33t


Joined: 13 Feb 2007
Posts: 822

PostPosted: Tue Jul 28, 2009 2:45 pm    Post subject: [PHP] Problema con Variable GET y formulario POST (SOLVED) Reply with quote

Hola a todos, que tal?

Vengo de nuevo por aqui, aver si me pueden hechar una mano con un problemita que estoy teniendo..les cuento:


Tengo 1 formulario, el cual, muestra un monton de registros de la base de datos, el cual es el nombre y apellidos de cada persona registrada en la base de datos.

Si pinchamos en el apellido (para la edición de los datos del apellido), se enviaria esto:

Code:

<a href="editar.php?accion=editapellidos&id=<? echo $ref ?>"> <? echo $apellidos ?> </a></td>


Se envia por get el tipo de edicion a realizar (en este caso editapellidos) y la identidad del sujeto que la conseguimos mediante la variable ($ref).

Hasta ahi bíen...

Legamos a la 2º pagina, y en la url tenemos esto:

Code:

http://www.web.com/editar.php?accion=editapellidos&id=3


En esa 2º pagina, tengo creado un form de html imprimido por php con (echo)...

Code:


//Recojemos los valores GET
$accion = $_GET["accion"];
$ref=$_GET["id"];

 echo '<b><font align="center">Modifiar apellidos del sujeto numero: #'.$ref.' </font><br/><br/>';
 echo '<form method="post" action="?accion=editapellidos&id="'.$ref.'">';
 echo '<b>Nuevo valor: <input name="apellidos" type="text" id="apellidos"></input><br/></b>';

 echo '<input name="submit" type="submit" value="Modificar"></input>';
 echo '</form>';
echo "La variable ref vale: $ref";
 


Pues, como ven, al introducir en el campo de texto el nuevo valor a modificar, se refresca el mismo fichero con las mismas variables pasadas por get anteriormente..

Pero por sorpresa....la variable $ref se queda vacia, cambia de valor..
Una solución podria ser, pasando este otro formulario por get y pasar de nuevo $ref, pero quiero pasar este formulario por POST y que la variable $ref mantenga el valor en la url que contenia anteriormente.

¿Es posible?
Espero respuestas.
Saludos.
_________________
--
http://www.monovarlinux.org. Información y experiencias con linux, especialmente con Gentoo.


Last edited by ZaPa on Tue Sep 01, 2009 1:45 pm; edited 1 time in total
Back to top
View user's profile Send private message
Stolz
Moderator
Moderator


Joined: 19 Oct 2003
Posts: 3028
Location: Hong Kong

PostPosted: Tue Jul 28, 2009 3:41 pm    Post subject: Reply with quote

Si quieres pasar por POST el valor de $ref puedes añadir un campo oculto al formulario:
Code:
echo sprintf('<input type="hidden" name="id" id="id" value="%d" />',$ref);

así recibes el parámetro $_POST['id'] tras hacer el submit:

También puedes calcular $ref así:
$ref=$_REQUEST["id"];
que combinado con lo anterior tepermite leer $ref venga de donde venga (POST o GET)
Back to top
View user's profile Send private message
lanshor
Apprentice
Apprentice


Joined: 17 Mar 2005
Posts: 291
Location: Alicante

PostPosted: Tue Jul 28, 2009 4:07 pm    Post subject: Reply with quote

Creo que tienes un error de comillas:

Code:
echo '<form method="post" action="?accion=editapellidos&id="'.$ref.'">';


debería ser:

Code:
echo '<form method="post" action="?accion=editapellidos&id='.$ref.'">';


Estabas cerrando el atributo "action" justo después de "id=" al escribir esas comillas dobles; por eso $ref se te quedaba sin valor.

Trata de usar <?=$variable?> en vez de <?echo $variable?> (son lo mismo) e imprimir sólo por php lo necesario para evitar que te pasen estas cosas. Tu código quedaría así:

Code:

//Recojemos los valores GET
$accion = $_GET["accion"];
$ref=$_GET["id"];
?>

<b>
   <font align="center">Modifiar apellidos del sujeto numero: #<?=$ref?></font><br/><br/>
</b>
<form method="post" action="?accion=<?=$accion?>&amp;id=<?=$ref?>">
   <b>
      Nuevo valor: <input name="apellidos" type="text" id="apellidos"></input><br/>
   </b>
   <input name="submit" type="submit" value="Modificar"></input>
</form>

<?
echo "La variable ref vale: $ref";


Usa &amp; en vez de & en las urls y tabula el código todo lo que puedas (no cerrabas el primer "<b>") ;)
_________________
Mi FoToBLoG
Back to top
View user's profile Send private message
ZaPa
l33t
l33t


Joined: 13 Feb 2007
Posts: 822

PostPosted: Tue Jul 28, 2009 4:28 pm    Post subject: Reply with quote

Muchisimas gracia Stolz y lanshor por vuestras respuestas.

En efeccto..era las malditas comillas dobles, cerraba el action antes del id con las comillas dobles y por eso la variable se quedaba sin valor...

Una estupidez que me ha hecho perder mucho tiempo probando cosas....

Como siempre..muchisimas gracias por todo a todos.

Porcierto..stolz..que pasó con tu blog? lo volverás a abrir?

Un saludo !
_________________
--
http://www.monovarlinux.org. Información y experiencias con linux, especialmente con Gentoo.
Back to top
View user's profile Send private message
Stolz
Moderator
Moderator


Joined: 19 Oct 2003
Posts: 3028
Location: Hong Kong

PostPosted: Wed Jul 29, 2009 2:57 pm    Post subject: Reply with quote

ZaPa wrote:
Porcierto..stolz..que pasó con tu blog? lo volverás a abrir?


La máquina en el que lo alojaba pasó a mejor vida. Logré recuperar los datos pero aun no he tenido tiempo para instalar otra máquina. en cuanto pueda lo vuelvo a "abrir" ;)
Back to top
View user's profile Send private message
Inodoro_Pereyra
Advocate
Advocate


Joined: 03 Nov 2006
Posts: 2631
Location: En la otra punta del cable

PostPosted: Thu Jul 30, 2009 1:37 am    Post subject: Reply with quote

Stolz wrote:
ZaPa wrote:
Porcierto..stolz..que pasó con tu blog? lo volverás a abrir?


La máquina en el que lo alojaba pasó a mejor vida. Logré recuperar los datos pero aun no he tenido tiempo para instalar otra máquina. en cuanto pueda lo vuelvo a "abrir" ;)


Es bueno saberlo, ya lo estaba extrañando :D

Salud!
_________________
Mi Blog.

Si no fuera por C, estaríamos escribiendo programas en BASI, PASAL y OBOL.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Spanish All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum