|
Formularios
Los Formularios no forman parte
de PHP, sino del lenguaje estándar del web, HTML,
pero como éstos van a aparecer muchas veces durante el curso,
vamos a dedicar esta algunas líneas a ellos.
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 la forma en que se enviarán datos
post o 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:
Botón de comando:
<input
type="submit" value="enviar" name="enviar">
Cuadro de texto:
<input
type="text" name="nombre" size="20"
value="jose">
Veamos
un ejemplo con PHP:
Las siguientes
dos paginas tienen el objetivo de preguntar cual es tu equipo
de fútbol favorito y desplegar en otra pagina el seleccionado
(equipo.htm y equipo.php).
<html>
<title>Equipo Favorito</title>
<body>
<form method="post" ACTION="equipo.php">
Cual es tu equipo de fútbol favorito ?
<input name="equipo" type "TEXT">
<br>
<br>
<input type=submit>
</form>
</body>
<html>
<html>
<body>
Tu equipo favorito es:
<?php Echo "<h1><B>".$_POST["equipo"]."</B></h1>";
?>
</body>
</html>
Hay que poner especial atención
en el parámetro name de un elemento del formulario ya que es el mismo nombre con
el que se le referenciará en php mediante el objeto $_POST,
como pudimos ver en el ejemplo anterior el elemento <input
name="equipo" type "TEXT"> lo manejamos en php como
$_POST["equipo"],
así es con todos los elementos de formularios enviados por el
método "POST" si el formulario se envia por
el método "GET", habra que usar el objeto $_GET.
Cuadro de texto con barras de desplazamiento:
<textarea
rows="5" name="descripcion" cols="20">Es
de color rojo</textarea>
Ahora veamos un ejemplo con PHP:
Programa PHP que pide WebSites favoritos y los
muestra como salida (sites.htm y sites.php).
<html>
<title>Web Sites Favoritos</title>
<body>
<form method="POST" ACTION="sites.php">
Mencióname algunos de tus WebSites Favoritos:
<br>
<textarea name="websites" cols="50" rows="5">
http://
http://
http://
http://
</textarea>
<br>
<br>
<input type=submit>
</form>
</body>
<html>
<html>
<body>
Tus webs favoritos son:<br>
<?php Echo "<h3><B>".$_POST["websites"]."</B></h3>";
?>
</body>
</html>
Casilla
de verificación o checkbox:
<input
type="checkbox" name="cambiar" value="ON">
Ahora veamos un ejemplo con PHP:
Programa
que pregunta lo que haces al levantarte y lo despliega como
salida (checkboxes.htm y checkboxes.php).
<HTML>
<HEAD></HEAD>
<BODY>
<FORM METHOD="POST" ACTION="checkboxes.php">
Qué haces en cuanto te levantas?<br><br>
Lavarme la cara<INPUT NAME="sel1" TYPE="Checkbox" VALUE="Lavarse
la Cara"><BR>
Asearse la boca<INPUT NAME="sel2" TYPE="Checkbox" VALUE="Asearse
los dientes"><BR>
Desayunar<INPUT NAME="sel3" TYPE="Checkbox" VALUE="Desayunar"
><BR>
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>
<html>
<body>
<?php
if (isset($_POST["sel1"]))
echo $_POST["sel1"]."
<br>";
if (isset($_POST["sel2"]))
echo $_POST["sel2"]."<br>";
if (isset($_POST["sel3"]))
echo $_POST["sel3"]."<br>";
?>
</body>
</html>
Botón
de radio u opción:
<input type="radio" value="azul" checked name="color">
Ahora veamos un ejemplo con PHP:
Programa que nos presenta
una suma, nosotros tenemos que elegir la respuesta entre tres
opciones posibles y la salida nos muestra la opción que elegimos
(radio.htm y radio.php).
<HTML>
<BODY>
<FORM METHOD="GET" ACTION="radio.php">
Cuantos son 2 + 2?
<BR>
<BR>
<INPUT NAME="Resp" TYPE="Radio" VALUE="44">44
<BR>
<INPUT NAME="Resp" TYPE="Radio" VALUE="22">22
<BR>
<INPUT NAME="Resp" TYPE="Radio" VALUE="4">4
<BR>
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
<HTML>
<BODY>
<?php Echo "seleccionaste ".$_GET["Resp"];?>
</BODY>
</HTML>
Menú desplegable:
<select
size="1" class="codigo"><select size="1"
name="dia">
<option selected value="lunes">lunes</option>
<option>martes</option>
<option
value="miercoles">miercoles</option>
</select>
Ahora veamos un ejemplo en PHP:
Programa que pregunta
opciones para armar una computadora y despliega las opciones
elegidas (lista.htm y lista.php).
<HTML>
<HEAD></HEAD>
<BODY>
<FORM METHOD="GET" ACTION="lista.php">
Elije la computadora a comprar
<BR>
<BR>
<SELECT NAME="compu">
<OPTION>Pentium</OPTION>
<OPTION>Celeron</OPTION>
<OPTION>K6</OPTION>
<OPTION>MAC</OPTION>
</SELECT>
<BR>
<BR>
Selecciona los dispositivos de la computadora?
<BR>
<BR>
<SELECT NAME="dispo[]" MULTIPLE>
<OPTION>KIT MULTIMEDIA</OPTION>
<OPTION>QUEMADORA</OPTION>
<OPTION>WEB CAM</OPTION>
<OPTION>MICROFONO</OPTION>
</SELECT>
<BR>
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>
<HTML>
<BODY>
<?php
echo "Seleccionaste una computadora: <B>$_GET["compu"]</B> con:<br>";
echo $_GET["dispo[0]"]."<br>";
echo $_GET["dispo[1]"]."<br>";
echo $_GET["dispo[2]"]."<br>";
echo $_GET["dispo[3]"]."<br>";
?>
</BODY>
</HTML>
Campo oculto:
<input type="hidden" name="edad" value="55">
Este último tipo de campo resulta
especialmente útil cuando queremos pasar datos ocultos en un
formulario.
Ahora pasemos a ver ejemplos que
necesitan mas código PHP, como son ciclos y arrays, implementándolos
en conjunto con los formularios.
Para el uso del FOR un programita para créditos
bancarios (banco.htm y banco.php).
<HTML>
<HEAD></HEAD>
<BODY>
<B>Crédito bancario</B>
<FORM METHOD="POST" ACTION="banco.php">
<BR>
Cual de estos paquetes te interesa tomar?<BR><BR>
<INPUT NAME="valor" TYPE="Radio" VALUE=1000>Nuestro
paquete de $1,000 Con el 5.0% interes
<BR>
<INPUT NAME="valor" TYPE="Radio" VALUE=5000>Nuestro
paquete de $5,000 Con el 6.5% interes
<BR>
<INPUT NAME="valor" TYPE="Radio" VALUE=10000>Nuestro
paquete de $10,000 Con el 8.0% interes
<BR>
<BR>
Cuanto es lo que deseas pagar al mes ?
<INPUT NAME="pagomes" TYPE="Text" SIZE="5">
<BR>
<BR>
<INPUT TYPE="SUBMIT" VALUE="Pulse aquí para
calcular">
</FORM>
</BODY>
</HTML>
<HTML>
<HEAD></HEAD>
<BODY>
<?php
$Duracion=0;
switch ($_POST["valor"]) {
case 1000:
$Interes = 5;
break;
case 5000:
$Interes = 6.5;
break;
case 10000:
$Interes = 8;
break;
default:
echo "No seleccionaste ningun paquete favor de presionar el
boton back y seleccionar alguno";
exit;
}
$valor=$_POST["valor"];
while ($valor> 0)
{
$Duracion = $Duracion + 1;
$Mensualmente = $_POST["pagomes"] - ($valor * $Interes/100);
if ($Mensualmente<=0)
{
echo "Tu necesitas hacer pagos mas grandes!";
exit;
}
$valor = $valor - $Mensualmente;
}
echo "La duracion es de: $Duracion meses con un porcentaje de
intereses del $Interes.";
?>
</BODY>
</HTML>
El siguiente programa demuestra como se pueden
trabajar los array como elementos hash (estados.php y
capital.php).
<html>
<head>
<title>Estados de México</title>
</head>
<body bgcolor="#FFFFFF">
De que estado te gustaría conocer su capital?
<?
$Estados=array(1=>"Colima","Jalisco","Sinaloa");
echo
"<form method='post' action='capital.php'>";
echo "<select name='estado'>";
for ($counter=1; $counter<4; $counter++)
echo "<option value=$counter>$Estados[$counter]</option>";
echo "</select><br><br>";
echo "<input type=submit>";
echo "</form>";
?>
</body>
</html>
<html>
<head>
<title>Capitales</title>
</head>
<body bgcolor="#FFFFFF">
<?php
$Capital=array(1=>"Colima","Guadalajara","Culiacan");
for ($counter=0;$counter<4;$counter++)
{
if ($counter==$_POST["estado"])
{
echo "la capital del estado elegido es &Capital[$counter]";
}
}
?>
</body>
</html>
Como podemos observar los dos archivos
tienen extensión .php, esto se debe a que es necesario ejecutar
código php en los dos, para poder formar dinámicamente las dos
páginas.
Para tener más material con formularios
realizaremos un programa PHP que contenga varios elementos de
formulario juntos:
Desarrollar un programa
en PHP que pida el Nombre (textbox), el apellido (textbox),
la edad (textbox), domicilio (text area), seleccione el rango
de sueldo que le gustaría ganar (listbox) y que seleccione
como considera así mismo su desempeño laboral (radio button).
El programa no aceptará curriculums que elijan un sueldo muy
bajo, ni un sueldo extremo, ni tampoco si se considera pésimo
(minicu.htm y minicu.php).
minicu.htm
<HTML><HEAD></HEAD><BODY><B>Minicurriculum
</B>
<FORM METHOD="POST" ACTION="minicu.php">
Nombres:
<INPUT NAME="nombres" TYPE="Text">
Apellidos:
<INPUT NAME="apellidos" TYPE="Text">
Edad:
<INPUT NAME="edad" TYPE="Text"SIZE="3">
<BR>
<BR>
Domicilio:
<TEXTAREA NAME="Domicilio" ROWS=4 COLS=40>
</TEXTAREA>
<BR>
<BR>
Que salario deseas ganar?
<SELECT
NAME="Salario">
<OPTION
VALUE=0> Menos de $1000</OPTION>
<OPTION
VALUE=1000>Entre $1,000 y $3,000</OPTION>
<OPTION
VALUE=3000>Entre $3,000 y $5,000</OPTION>
<OPTION
VALUE=5000>mas de $5,000</OPTION>
</SELECT>
<BR>
<BR>
Como consideras tu desempeño?<BR><BR>
<INPUT NAME="Desempe" TYPE="Radio" VALUE=0>Pesimo
<BR>
<INPUT NAME="Desempe" TYPE="Radio" VALUE=5>Regular
<BR>
<INPUT NAME="Desempe" TYPE="Radio" VALUE=10>Excelente
<BR>
<BR>
<INPUT TYPE="SUBMIT" VALUE="Presione cuando
este listo(a)">
<INPUT TYPE="RESET" VALUE="Borra todo">
</FORM>
</BODY>
</HTML>
<HTML>
<BODY>
Sr(a) <?php Echo $_POST["nombres"].$_POST["apellidos"];?>
en base a su edad (<?php Echo $_POST["edad"];?>) y sus aspiraciones <br>
económicas y su auto estimación hemos determinado que:<br>
<?php
echo "Salario deseado: ".$_POST["Salario"]."
<br>" ;
echo "Su desempeño elegido: ".$_POST["Desempe"]."
<br>";
if ((($_POST["Salario"]== 0) OR ($_POST["Salario"]
== 5000)) OR ($_POST["Desempe"] == 0))
{
Echo "Usted no cumple los requisitos para ser parte de nuestra
empresa";
}
else
{
Echo
"Usted cumple satisfactoriamente nuestras aspiraciones";
}
?>
</BODY>
</HTML>
|