|
Los formularios
Los Formularios no forman parte de PHP, sino del lenguaje estánder de
Internet, HTML, pero como éstos van a aperecer
muchas veces durante el curso, vamos a dedicar esta algunas líneas a ellos.
Lo que viene a continuación es HTML y no PHP.
Todo formulario comienza con la etiqueta <FORM
ACTION="lo_que_sea.php" METHOD="post/get">. Con ACTION
indicamos el script que va procesar la información que recogemos
en el formulario, mientras que METHOD nos
indica si el usuario del formulario va ha enviar datos (post)
o recogerlos (get). La etiqueta <FORM>
indica el final del formulario.
A partir de la etiqueta <FORM> vienen
los campos de entrada de datos que pueden ser:
Cuadro de texto:
<input type="text" name="nombre"
size="20" value="jose">
Cuadro de texto con barras de desplazamiento:
<textarea rows="5"
name="descripcion" cols="20">Es de color rojo</textarea>
Casilla de verificación:
<input type="checkbox"
name="cambiar" value="ON">
Botón de opción:
<input type="radio" value="azul"
checked name="color">
Menú desplegable:
<select size="1" name="dia">
<option selected
value="lunes">lunes</option>
<option>martes</option>
<option
value="miercoles">miercoles</option>
</select>
Boton de comando:
<input type="submit" value="enviar"
name="enviar">
Campo oculto:
<input type="hidden" name="edad"
value="55">
Este último tipo de campo resulta especialmente útil cuando que remos
pasar datos ocultos en un formulario.
Como habrás observado todos lo tipos de campo tienen un modicador
llamado name, que no es otro que el
nombre de la variable con la cual recogeremos los datos en el script
indicado por el modificador ACTION de
la etiqueta FORM, con value
establecemos un valor por defecto.
A continuación veamos un ejemplo, para lo cual crearemos un formulario
en HTML como el que sigue y lo llamaremos formulario.html:
<HTML>
<BODY>
<FORM METHOD="post" ACTION="mis_datos.php">
<input type="hidden"
name="edad" value="55">
<p>Tu nombre <input
type="text" name="nombre" size="30"
value="jose"></p>
<p>Tu sistema favorito
<select size="1" name="sistema">
<option selected
value="Linux">Linux</option>
<option
value="Unix">Unix</option>
<option
value="Macintosh">Macintosh</option>
<option
value="Windows">Windows</option>
</select></p>
<p>¿Te gusta el futbol ?
<input type="checkbox" name="futbol"
value="ON"></p>
<p>¿Cual es tu
sexo?</p>
<blockquote>
<p>Hombre<input
type="radio" value="hombre" checked
name="sexo"></p>
<p>Mujer <input
type="radio" name="sexo"
value="mujer"></p>
</blockquote>
<p>Aficiones</p>
<p><textarea
rows="5" name="aficiones"
cols="28"></textarea></p>
<p><input
type="submit" value="Enviar datos" name="enviar">
<input type="reset" value="Restablecer"
name="B2"></p>
</FORM>
</BODY>
<HTML>
Y ahora creemos el script PHP llamado desde le formulario mis_datos.php:
<?PHP;
if ($enviar) {
echo "Hola <b>"
. $nombre . "</b> que tal estás<BR>\n";
echo "Eres " . $sexo .
"<BR>\n";
echo "Tienes " . $edad
. "<BR>\n";
echo "Tu sistema favorito
es " . $sistema . "<BR>\n";
if ($futbol) {
echo "Te gusta el futbol
<BR>\n";
} else {
echo "NO te gusta el futbol
<BR>\n";
}
if ($aficiones != "")
{
echo "Tus aficiones son:
<BR>\n";
echo nl2br($aficiones);
} else {
echo "NO tienes aficiones
<BR>\n";
}
}
echo "<a href='formulario.html'>VOLVER AL
FORMULARIO</a>"
?>
Una vez rellenados los datos del formulario,
pulsamos el botón Enviar datos, con lo que le campo enviar
toma lo que su etiqueta value indica,
es decir enviar="Enviar datos". En nuestro script lo
primero que evaluamos es que se haya enviado el formulario, y para
ello nada mejor que comprobar que la variable $enviar
no está
vacia. Le ponemos el signo dolar delante a enviar, ya que en PHP
todas las variables se les refiere con este signo.
Pero y fusionaramos el código de ambos fichero,
nos ahorrariamo uno. Si la variable $enviar
está vacia, enviamos el formulario.
<?PHP;
if ($enviar) {
echo "Hola <b>"
. $nombre . "</b> que tal estás<BR>\n";
echo "Eres " . $sexo .
"<BR>\n";
echo "Tienes " . $edad
. "<BR>\n";
echo "Tu sistema favorito
es " . $sistema . "<BR>\n";
if ($futbol) {
echo "Te gusta el futbol
<BR>\n";
} else {
echo "NO te gusta el futbol
<BR>\n";
}
if ($aficiones != "")
{
echo "Tus aficiones son:
<BR>\n";
echo nl2br($aficiones);
} else {
echo "NO tienes aficiones
<BR>\n";
}
echo "<a href='$PHP_SELF'>VOLVER AL
FORMULARIO</a>"
} else {
<HTML>
<BODY>
<FORM METHOD="post" ACTION="<?PHP echo $PHP_SELF ?>">
<input type="hidden"
name="edad" value="55">
<p>Tu nombre <input
type="text" name="nombre" size="30"
value="jose"></p>
<p>Tu sistema favorito
<select size="1" name="sistema">
<option selected
value="Linux">Linux</option>
<option
value="Unix">Unix</option>
<option
value="Macintosh">Macintosh</option>
<option
value="Windows">Windows</option>
</select></p>
<p>¿Te gusta el futbol ?
<input type="checkbox" name="futbol"
value="ON"></p>
<p>¿Cual es tu
sexo?</p>
<blockquote>
<p>Hombre<input
type="radio" value="hombre" checked
name="sexo"></p>
<p>Mujer <input
type="radio" name="sexo"
value="mujer"></p>
</blockquote>
<p>Aficiones</p>
<p><textarea
rows="5" name="aficiones"
cols="28"></textarea></p>
<p><input
type="submit" value="Enviar datos" name="enviar">
<input type="reset" value="Restablecer"
name="B2"></p>
</FORM>
</BODY>
</HTML>
<?PHP
} //fin IF
?>
La variable de entorno $PHP_SELF,
es una variable de entorno que nos devuelve el nombre del script que
estamos ejecutando. Y por último, hacer notar el uso de la función nl2br(),
con la cuál sustituimos los retornos de carro del texto, los
cuáles no reconocen los navegadores, por la etiqueta <BR>.
|