Para qué sirven los formularios en las páginas web
Los formularios permiten a los desarrolladores de páginas web poner elementos interactivos en sus páginas, por ejemplo, para recibir mensajes de sus lectores, de forma similar a las cartas de respuestas que se encuentra en algunas revistas.
El lector escribe la información rellenando campos o haciendo clic sobre botones, y luego presiona un botón de envío para enviarla a una dirección URL que se suele dirigir a una dirección de correo electrónico o a un
script dinámico Web como PHP, ASP o CGI.
La etiqueta FORM
Los formularios están delimitados con la etiqueta
<FORM> ... </FORM>. Esta etiqueta agrupa varios elementos del formulario, como botones y casillas de texto, y posee 2 atributos: METHOD y ACTION.
METHOD indica cómo se enviarán las respuestas.
POST es el valor que corresponde al envío de datos almacenándolos en el formulario, en tanto que
GET corresponde al envío de datos a través de la URL separando los datos de la dirección con un signo de interrogación. Para aprender más sobre los métodos POST y GET, consulta el artículo sobre
protocolo HTTP.
ACTION indica la dirección a la que se enviará la información (un
script CGI o una dirección de correo electrónico (mailto:dirección_de_correo_e@equipo)). Un atributo opcional de la etiqueta FORM es
ENCTYPE, que especifica cómo se codifican los datos del formulario. De cualquier forma, esto no necesita especificarse, ya que el valor predeterminado (application/x-www-form-urlencoded) es el único valor válido. El atributo opcional
ACCEPT se usa para establecer
tipos MIME para los datos que el formulario puede enviar.
La sintaxis para la etiqueta FORM es la siguiente:
<FORM METHOD="POST" o "GET" ACTION="url" ENCTYPE="x-www-form-urlencoded">
...
</FORM>
Aquí algunos ejemplos de la etiqueta FORM:
<FORM METHOD=POST ACTION="mailto:webmaster@kioskea.net">
<FORM METHOD=GET ACTION="http://es.kioskea.net/cgi-bin/script.cgi">
Qué elementos pueden ir dentro de la etiqueta FORM
La etiqueta
FORM actúa como una especie de contenedor para almacenar elementos que permiten al usuario seleccionar o introducir datos. Todos los datos se enviarán a la URL indicada en el atributo
ACTION de la etiqueta
FORM, por el método indicado en el atributo
METHOD.
Se puede insertar cualquier elemento HTML en una etiqueta
FORM (texto, botones, tablas y enlaces), pero los elementos interactivos son los más interesantes. Por ejemplo, la etiqueta
INPUT (botones y casillas de texto), la etiqueta
TEXTAREA (una casilla de texto), la etiqueta
SELECT (una lista de selección múltiple).
Cómo se envían los datos del formulario
Cuando se envía un formulario (haciendo clic en el botón de envío), los datos del formulario se envían a un
script CGI bajo la forma de
pares nombre/valor, es decir conjuntos de datos representados por el nombre del elemento formulario, un signo igual (
=) y luego el valor asociado. Estos pares nombre/valor se separan unos de otros mediante el símbolo de unión (
&). Por lo tanto, los datos que se envían al
script se verán así:
campo1=valor1&field2;=valor2&field3;=valor3
Con el método GET (enviar los datos mediante una URL), la URL será una cadena como la siguiente:
http://es.kioskea.net/cgi-bin/script.cgi?campo1=valor1&field2;=valor2
La etiqueta INPUT
La etiqueta
INPUT es una etiqueta esencial para los formularios, ya que se usa para crear muchos elementos “interactivos”. La sintaxis de esta etiqueta es la siguiente:
<INPUT type="Nombre de campo" value="Valor predeterminado" name="Nombre de elemento">
El atributo
name es esencial, ya que permite al
script CGI reconocer qué campo está asociado con un par nombre/valor, lo que significa que el nombre del campo estará seguido de un signo igual (
=) seguido de un valor que el usuario introdujo, o si el usuario no introdujo ningún valor, por el valor predeterminado de la etiqueta
value.
El atributo
type se usa para especificar el tipo de elemento que mostrará la etiqueta
INPUT. Los posibles valores de este atributo son los siguientes:
checkbox: la casilla de selección puede adoptar el estado
checked (seleccionado) o
unchecked (no seleccionado). Cuando la casilla es seleccionada, el par nombre/valor se envía al CGI.
hidden: este campo, que el navegador no muestra, sirve para definir una configuración única que se enviará al CGI como par nombre/valor.
file: un campo que permite al usuario especificar una ruta de archivo que lleva al archivo que se enviará con el formulario. Los tipos de archivo que pueden ser enviados deben especificarse utilizando el atributo
ACCEPT de la etiqueta
FORM.
image: un botón de envío personalizado que aparece cuando se ubica una imagen en la ubicación definida por el atributo
SRC.
password: una casilla de texto donde los caracteres escritos aparecen como asteriscos para camuflar el texto de entrada.
radio: un botón que permite al usuario elegir entre varias opciones. Cada uno de estos botones debe tener el mismo atributo
name. El par nombre/valor del botón radio seleccionado se enviará al CGI. Al aplicar el atributo
checked para uno de estos botones se definirá como seleccionado de forma predeterminada.
reset: un botón de restauración para quitar todos los elementos en el formulario y restablecer sus valores predeterminados.
submit: un botón de envío para enviar el formulario. El texto en el botón puede definirse usando el atributo
value.
text: una casilla de texto para escribir una línea de texto. El tamaño de la casilla puede definirse usando el atributo
size y la extensión máxima del texto con el atributo
maxlength.
La etiqueta TEXTAREA
La etiqueta
TEXTAREA se usa para definir un cuadro de texto más grande que la línea simple propuesta por la etiqueta
INPUT. Esta etiqueta tiene los siguientes atributos:
cols: representa el número de caracteres que puede contener un línea.
rows: representa el número de líneas.
name: representa el nombre asociado con el cuadro de texto, que permite su identificación en el par nombre/valor.
readonly: impide que el usuario modifique el texto predeterminado en el campo.
value: representa el valor predeterminado que se enviará al
script si el usuario no ha escrito nada en el cuadro de texto.
La etiqueta SELECT
La etiqueta
SELECT sirve para crear una lista desplegable de elementos (especificados por las etiquetas
OPTION dentro de ella). Los atributos de esta etiqueta son:
name: representa el nombre asociado con la casilla de texto, que permite su identificación en el par nombre/valor.
disabled: crea un lista desactivada, que aparece atenuada.
size: representa el número de líneas de la lista (este valor puede ser más grande que el número de elementos reales de la lista).
multiple: permite al usuario seleccionar varios campos de la lista.
Ejemplo de formulario
Los formularios pueden ubicarse en una página usando tablas (algo recomendable para una presentación profesional). Este es un ejemplo que resume los puntos precedentes, mostrando cómo disponer un formulario en una página web mediante una tabla:
<FORM method=post action="cgi-bin/script.pl">
Registro de un usuario
<TABLE BORDER=0>
<TR>
<TD>Apellido</TD>
<TD>
<INPUT type=text name="apellido">
</TD>
</TR>
<TR>
<TD>Nombre</TD>
<TD>
<INPUT type=text name="nombre">
</TD>
</TR>
<TR>
<TD>Género</TD>
<TD>
Hombre:
Mujer: <INPUT type=radio name="género" value="M">
<br>Mujer: <INPUT type=radio name="género" value="F">
</TD>
</TR>
<TR>
<TD>Ocupación</TD>
<TD>
<SELECT name="ocupación">
<OPTION VALUE="profesor">Profesor</OPTION>
<OPTION VALUE="estudiante">Estudiante</OPTION>
<OPTION VALUE="ingeniero">Ingeniero</OPTION>
<OPTION VALUE="jubilado">Jubilado</OPTION>
<OPTION VALUE="otro">Otro</OPTION>
</SELECT>
</TD>
</TR>
<TR>
<TD>Comentarios</TD>
<TD>
<TEXTAREA rows="3" name="comentarios">
Escriba aquí sus comentarios</TEXTAREA>
Enviar
</TD>
</TR>
<TR>
<TD COLSPAN=2>
<INPUT type="submit" value="Enviar">
</TD>
</TR>
</TABLE>
</FORM>