View previous topic :: View next topic |
Author |
Message |
ZaPa l33t
Joined: 13 Feb 2007 Posts: 822
|
Posted: Tue Jul 28, 2009 2:45 pm Post subject: [PHP] Problema con Variable GET y formulario POST (SOLVED) |
|
|
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 |
|
|
Stolz Moderator
Joined: 19 Oct 2003 Posts: 3028 Location: Hong Kong
|
Posted: Tue Jul 28, 2009 3:41 pm Post subject: |
|
|
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 |
|
|
lanshor Apprentice
Joined: 17 Mar 2005 Posts: 291 Location: Alicante
|
Posted: Tue Jul 28, 2009 4:07 pm Post subject: |
|
|
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?>&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 & 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 |
|
|
ZaPa l33t
Joined: 13 Feb 2007 Posts: 822
|
Posted: Tue Jul 28, 2009 4:28 pm Post subject: |
|
|
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 |
|
|
Stolz Moderator
Joined: 19 Oct 2003 Posts: 3028 Location: Hong Kong
|
Posted: Wed Jul 29, 2009 2:57 pm Post subject: |
|
|
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 |
|
|
Inodoro_Pereyra Advocate
Joined: 03 Nov 2006 Posts: 2631 Location: En la otra punta del cable
|
Posted: Thu Jul 30, 2009 1:37 am Post subject: |
|
|
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
Salud! _________________ Mi Blog.
Si no fuera por C, estaríamos escribiendo programas en BASI, PASAL y OBOL. |
|
Back to top |
|
|
|