El atributo action nos indicar la ruta del archivo en PHP donde se recogern los datos. El atributo method debe tener siempre el valor "post". y los atributos nameson la referencia para guardar el dato dado por el usuario. El siguiente paso consiste en crear el archivo PHP, al que en este ejemplo llamaremos form.php y que ubicaremos en la misma carpeta que el archivo que contiene el formulario anterior. los datos que ha introducido el usuario en el formulario se recogen en una variable que tendr la siguiente forma: $_POST['valor_de_name'] Donde pone valor_de_name escribiremos el valor que le hayamos dado al atributo name. De esta forma esta variable recoger el texto escrito por el usuario en ese campo. El cdigo PHP siguiente nos mostrar en una segunda pgina (form.php) los datos que el usuario ha introducido en la primera:
<?php echo "Tu nombre: "; echo $_POST['nombre']; echo "<br/>"; echo "Tu contrasea: "; echo $_POST['contras']; echo "<br/>"; echo "Tu opinin: "; echo $_POST['opinion']; echo "<br/>"; ?>
Botones checkbox
Los botones checkbox son independientes unos de otros, por tanto el atributo namedebe ser distinto e identificativo en cada uno de ellos. Para poder pasar los datos a otra pgina estos botones deben llevar el atributo name. El atributo value no es obligatiorio, aunque s recomendable. Veamos un ejemplo:
<input type="checkbox" name="musica"/> Msica<br/> <input type="checkbox" name="deportes" value="SI"/> Deportes <br/> Como en el caso anterior en la pgina de recogida de datos usaremos la variable$_POST['valor_de_name'] en el cdigo php: <?php echo "Musica: "; echo $_POST['musica']; echo "<br/>"; echo "Deportes: "; echo $_POST['deportes']; echo "<br/>"; ?> Si el botn no se ha seleccionado se devolvera como valor una variable vaca, Si est seleccionado nos devolvera el valor " on" si no lleva el atributo value. Si lleva este atributo el valor devuelto ser el que ste tenga.
Listas select
Las listas tipo "select" empiezan siempre por la etiqueta <select..>. Es en esta etiqueta donde debemos poner el atributo name para identificarla. Recordemos que las distintas opciones que puede elegir el usuario van marcadas por las etiquetas <option> ...</option>. veamos la siguiente lista:
<select name="color"> <option>ninguno</option> <option value="red">rojo</option> <option value="blue">azul</option> <option value="green">verde</option> <option value="yellow">amarillo</option> </select>
Como en los campos anteriores en la pgina php pondremos la variable$_POST['valor_de_name'] para obtener el dato. <?php echo "Color: "; echo $_POST['color']; ?> el dato que recoge la variable es el valor de la etiqueta value. Si la opcin no lleva esta etiqueta el dato ser el texto de la opcin. En el ejemplo anterior, si se selecciona la primera opcin, el dato recogido ser "ninguno", y si seleccionamos la segunda ser "red".
Metodo get
Podemos emplear tambin el metodo get para recoger los datos del formulario, la forma es similar a la vista anteriormente. En la etiqueta <form ... > pondremos en atributo: method="get" <form action="pagina.php" method="get"> En los campos del formulario podremos la etiqueta name que nos identificar el nombre del campo. Para recoger los datos utilizaremos en la pgina PHP la variable$_GET['valor_de_name'], de la misma forma vista para el mtodo POST. Por ltimo al principio de la pgina de recogida debemos poner el siguiente script:
<?php $HTTP_GET_VARS; ?> Este script no es necesario con las versiones ms recientes de PHP. El metodo GET es menos recomendable ya que los datos pueden verse tambin en la barra de navegacin del navegador.
datos no guardados
Los datos aportados por las variables no se guardan, stos desaparecen al cerrar la pgina, ya cualquier usuario al volver a rellenar el formulario y enviarlo cambia los datos aportados. Sin embargo nos pueden servir para mostrarlos o trabajar con ellos, como veremos ms adelante. De momento lo importante es saber cmo recoger los datos que nos aporta el usuario. Ms adelante veremos cmo guardarlos y dnde.
<input type="radio" name="estudios" value="elemental" checked="checked"> Certificado escolar<br/> <input type="radio" name="estudios" value="basico"/> Graduado en E.S.O.<br/> <input type="radio" name="estudios" value="bachiller"/> Bachiller - Formacin Profesional <br/> <input type="radio" name="estudios" value="Diplomado"/> Diplomado<br/> <input type="radio" name="estudios" value="licenciado"/> Licenciado o Doctorado<br/> </td> <td> Interesado en los siguientes temas: <br/> <input type="checkbox" name="musica"/> Msica<br/> <input type="checkbox" name="deportes"/> Deportes<br/> <input type="checkbox" name="cine"/> Cine<br/> <input type="checkbox" name="libros"/> Libros<br/> <input type="checkbox" name="ciencia"/> Ciencia</p> </td> </tr> </table> <p>Da de la semana que le interesa recibirlo:</p> <select name="dia"> <option>da de la semana:</option> <option value="">lunes</option> <option value="Martes">martes</option> <option value="Mircoles">miercoles</option> <option value="Jueves">jueves</option> <option value="Viernes">viernes</option> <option value="Sbado">sbado</option> <option value="Domingo">domingo</option> </select> </p> <p>Su opinin: <br/> <textarea name="comentario" rows="5" cols="50">Comentario: </textarea> <p><input type="submit" value="Comprobar el formulario"> <input type="reset" value="borrar todo"></p> </form> </body> </html>
En este formulario hemos querido incluir al menos un campo de cada tipo, para que se vean los resultados del traslado de datos.
</head> <body> <h1>Tus Datos de suscripcin: </h1> <p>Estos son los datos que nos has enviado:</p> <?php echo "Nombre: "; echo $_POST['nombre']; echo "<br/>"; echo "apellidos: "; echo $_POST['apellidos']; echo "<br/>"; echo "E-mail: "; echo $_POST['email']; echo "<br/>"; echo "contrasea: "; echo $_POST['contras']; echo "<br/>"; echo "Sexo: "; echo $_POST['sexo']; echo "<br/>"; echo "Estudios: "; echo $_POST['estudios']; echo "<br/>"; echo "Aficiones: \"on\" seleccionado, sin marcar, no seleccionado<br/>"; echo "Musica: "; echo $_POST['musica']; echo "<br/>"; echo "Deportes: "; echo $_POST['deportes']; echo "<br/>"; echo "Cine: "; echo $_POST['cine']; echo "<br/>"; echo "Libros: "; echo $_POST['libros']; echo "<br/>"; echo "Ciencia: "; echo $_POST['ciencia']; echo "<br/><br/>"; echo "Da de la semana: "; echo $_POST['dia']; echo "<br/>"; echo "Tu comentario: "; echo $_POST['comentario']; echo "<br/>"; ?> <p>Comprueba tus datos antes de enviarlos, si no estn bien vuelve a escribirlos.</p> <p>Los datos son correctos: <a href="form.html">Enviar</a> <p>Los datos no son correctos: <a href="enviar.html">Volver a escribirlos</a> </body> </html>
Pr ltimo colocaremos la pgina que nos dice que los datos han sido enviados, para ello crearemos la sigiente pgina llamada "enviar.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>comprobado</title> </head> <body> <h1>Tu solicitud ha sido admitida.</h1> <p>Tus datos han sido registrados... </p> </body> </html>
formularios, para pasar los valores o datos que almacena una variable a otra pgina.
Mediante este mtodo creamos la variable a la vez que el enlace, por lo que no podemos pasar variables que tenamos creadas anteriormente, ya que el valor de stas no es reconocido en el valor que ponemos en el enlace. veamos cual es la solucin:
Lo que recibiremos en la pgina 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 cdigo PHP, como una instruccin echo; es decir en la pgina de envo para mandar el enlace escribiremos: <?php echo "<a href='destino,php?saludo=$saludo'>Recibir saludo</a>"; ?> Ahora el valor de la variable que mandamos ser en la pgina de destino el mismo que el de la pgina de origen, por lo que si lo cambiamos en la pgina de origen, cambiar tambin en la de destino.
En la pgina de destino recibiremos las variables mediante el mtodo 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>pgina de destino</title> </head> <body> <h1>Al abrir esta pgina 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>