Para pasar las variables de una página a otra lo podemos hacer introduciendo dicha variable dentro del enlace hipertexto de la página destino. La sintaxis sería la siguiente:
<a
href="destino.php?variable1=valor1&variable2=valor2&...">Mi
enlace</a>
Podéis
observar que estas variables no poseen el símbolo $ delante. Esto es debido a
que en realidad este modo de pasar variables no es específico de PHP sino que
es utilizado por otros lenguajes.
Ahora
nuestra variable pertenece también al entorno de la página destino.php y
está lista para su explotación.
Nota: No
siempre se definen automáticamente las variables recibidas por parámetro en las
páginas web, depende de una variable de configuración de PHP: register_globals,
que tiene que estar activada para que así sea. Ver comentarios del artículo al
final de la página para más información.
Para
aclarar posibles dudas, veamos esto en forma de ejemplo. Tendremos pues dos
páginas, origen.html (no es necesario darle extensión PHP puesto que no
hay ningún tipo de código) y destino.php:
<HTML><HEAD>
<TITLE>origen.html</TITLE>
</HEAD>
<BODY>
<a href="destino.php?saludo=hola&texto=Esto es una variable texto">Paso variables saludo y texto a la página destino.php</a>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>destino.php</TITLE>
</HEAD>
<BODY>
<?
echo "Variable $saludo: $saludo <br>n";
echo "Variable $texto: $texto <br>n"
?>
</BODY>
</HTML>
Ambito de las variables
El ámbito de una variable es el lugar en el que ésta funciona, es decir, en donde la variable tiene validez.
De no indicar otra cosa, la variable tendrá su ámbito dentro de la página en la que fue creada, y a su vez dentro de la función en la que fue creada (más adelante explicaremos las funciones), no pudiendo ser utilizada en otra página. Sin embargo, existen métodos para pasar los valores o datos que almacena una variable a otra página, tal como hemos visto en el tema anterior con los formularios, pero también podemos pasar variables de una página a otra sin que éstas sean creadas por los formularios .
Traspaso de variables por enlaces
Podemos pasar una o varias variables a otra página cuando la abrimos con un enlace, mediante el siguiente código:
<a href="destino.php?variable1=valor1&variable2=valor2 ...&variableN=valorN "> pasar variables</a>
En el siguiente código nos fijamos en el atributo href del enlace.
En primer lugar escribimos la ruta o URL del destino de manera normal.
Después escribimos el signo de interrogacion ? y las variables que queremos pasar a la otra página. cada variable va separada de las demás por el signo &.
De cada variable escribiremos su nombre, sin el signo dolar $, el signo igual, =, y después su valor. El valor de la variable no debe ir entrecomillado, aunque esta sea una variable de texto.
Por lo tanto las variables son definidas al mismo tiempo que las mandamos. Veamos un ejemplo:
<a href="bienvenida.php?var1=Hola, &var2=Bienvenido a esta página."> página de bienvenida</a>
Este es un enlace hacia la página "bienvenida.php" que está en la misma carpeta que la página de envio. En este enlace mandamos dos variables, la variable $var1="Hola, " y la variable $var2="Bienvenido a esta página.".
Recoger datos en página de destino
La segunda parte consiste en recoger las variables en la página de destino. Estas son traspasadas mediante el método GET por lo que para recogerlas utilizaremos la variable del tipo $_GET['variable1'].
En el ejemplo anterior, en la página "bienvenida.php" (página de destino) pondremos el siguiente código para que aparezcan en pantalla:
<?php $v1=$_GET['var1']; $v2=$_GET['var2']; echo $v1; echo $v2; ?>
Mediante este método creamos la variable a la vez que el enlace, por lo que no podemos pasar variables que teníamos creadas anteriormente, ya que el valor de éstas no es reconocido en el valor que ponemos en el enlace. veamos cual es la solución:
Pasar variables ya definidas.
Supongamos que en una página definimos una variable:
$saludo="Hola a todos.";
Una vez que está definida queremos mandarla a otra página mediante un enlace. No podemos escribir el enlace directamente con la expresión:
<a href="destino.php?saludo=$saludo">Recibir saludo</a>
Lo que recibiremos en la página de destino es una variable cuyo valor será la palabra "$saludo", y no el contenido de la variable.
para solucionar esto, debemos mandar el enlace dentro del código PHP, como una instrucción echo; es decir en la página de envío para mandar el enlace escribiremos:
<?php
echo "<a href='destino,php?saludo=$saludo'>Recibir saludo</a>";
?>
echo "<a href='destino,php?saludo=$saludo'>Recibir saludo</a>";
?>
Ahora el valor de la variable que mandamos será en la página de destino el mismo que el de la página de origen, por lo que si lo cambiamos en la página de origen, cambiará también en la de destino.
Ejemplo de paso de variables
Veamos cómo queda el ejemplo anterior: En la página de envío : "envio.php", escribimos las variables y las mandamos mediante un enlace. Esta es la página de envío;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>Página de envío</title> </head> <body> <h1>Envío de variables a otra página.</h1> <?php $a="Hola, "; $b="bienvenido a mi página"; echo "Enviar las siguientes variables:<br/>"; echo "\$a = $a <br/>"; echo "\$b = $b <br/>"; ?> <p>Pulsar el siguiente enlace</p> <?php echo "<a href='destino.php?a=$a&b=$b'>Enviar variables</a>"; ?> </body> </html>
En la página de destino recibiremos las variables mediante el método GET y las sacamos en pantalla:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>página de destino</title>
</head>
<body>
<h1>Al abrir esta página se han pasado las siguientes variables:</h1>
<?php
$a=$_GET['a'];
$b=$_GET['b'];
echo "<p>variable \$a : $a";
echo "<p>variable \$b : $b";
?>
</body>
</html>
Fuente de Información: http://www.desarrolloweb.com/articulos/317.php
http://aprende-web.net/php/php4_2.php







0 comentarios:
Publicar un comentario