You are on page 1of 6

Introduccin a los formularios

Antes de entrar de lleno en el tema, es conveniente precisar que las dificultades de comprensin de las plantillas HTML se justifican debido a que constituyen un caso singular dentro de la programacin hipertextual normal. En efecto, la mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con l. Dicho de otro modo, la relacin usuario/pgina es unidireccional y esttica. Con las plantillas, por el contrario, el usuario puede interactuar con el sitio enviando sus comentarios, haciendo peticiones sin necesidad de escribir mensajes por correo electrnico, firmando en el libro de visitas, contestando a encuestas y sondeos, etc. Todo ello define una relacin bidireccional, que es posible slo gracias a la intervencin de programas residentes en servidores WWW: se trata de los denominados CGI o Common Gateway Interface (Interfaz Comn de Pasarela). Estos programas hacen posible lo que no podra hacerse si se actuara desde el lado client. Es decir, la gestin de las plantillas depende, en realidad, ms del servidor que de la programacin HTML propiamente dicha. Para que un formulario HTML funcione es necesario disponer de un CGI residente en el propio servidor o en otro sitio. El web no escatima los servicios gratuitos destinados justamente a este fin. A menudo se trata de CGI gratuitos que las comunidades virtuales (Geocities, Tripod, Xoom, etc.) ponen a disposicin de sus propios ciudadanos, pero no faltan servicios especficos gratuitos no relacionados con estas comunidades. Para los ms despabilados, es aconsejable dirigirse a la fuente e importar personalmente en el propio servidor uno de los numerosos programas CGI distribuidos gratuitamente por los propios autores y recopilados en sitios especficos. A decir verdad, un formulario puede elaborarse tambin sin pasar por un CGI, pero las desventajas y lmites que comporta este procedimiento no pueden obviarse por lo que no debera adoptarse sino en casos de extrema necesidad. En las pginas que siguen trataremos tambin detalladamente esta posibilidad. La elaboracin de una plantilla consta de dos fases: impostacin de las marcas para la creacin de la plantilla, de los campos y del botn de envo; elaboracin de un script CGI en servidor (o llamamiento de un script ya impostado)

Las marcas de los formularios

Las plantillas se introdujeron en la versin HTML 2.0. Veamos ahora, con detalle, todas las marcas que para la elaboracin de formularios prev HTML 4.0. <FORM></FORM> Esta marca abre y cierra la plantilla y recoge el contenido de la misma, que puede variar segn una serie de marcas que veremos ms adelante. No es posible insertar una plantilla dentro de otra. Dicho de otro modo, los formularios no permiten anidamientos. La sintaxis usual de las marcas citadas es la siguiente: <FORM method="get|post" action="http://www.tuosito.com/cgibin/nome_script.cgi"> Si METHOD est impostado como GET los datos se envan al servidor y se separan en dos variables. Para este mtodo el nmero mximo de caracteres que puede contener el formulario es de 255. Utilizando "method=post", el script CGI recibe directamente los datos sin un proceso previo de descodificacin. Esta caracterstica hace que el script pueda leer una cantidad ilimitada de caracteres. Una vez impostada la primera marca <FORM> de la plantilla, es posible, siempre y cuando el script CGI lo permita, crear algunos elementos que resultan de gran utilidad para una adecuada gestin de los datos: <INPUT TYPE=HIDDEN NAME=MAILFORM_SUBJECT VALUE="Asunto del formulario"> Este cdigo determina el asunto (subject) del mensaje que recibirs por correo electrnico con el contenido del formulario. Es muy til que los mensajes recibidos lleven especificado el asunto, no slo para quienes usan filtros de seleccin del correo, sino tambin para ordenar la correspondencia. <INPUT TYPE=HIDDEN NAME=MAILFORM_URL VALUE="http://www.tuosito.it"> Este cdigo es muy til ya que, una vez rellenado y enviado correctamente, el formulario responde con una pgina HTML sucesiva, dentro de la cual es posible incluir cualquier tipo de comentario. Lo ms normal es visualizar una pgina de confirmacin "Tu formulario ha sido enviado correctamente", pero se puede tambin mandar directamente a la portada del sitio. Se trata de comandos no estndar que varan segn el CGI utilizado. Por tanto, el cdigo antes descrito no funciona en todos los casos, sino nicamente con el ejemplo prctico que os mostraremos ms adelante. La marca de base para la definicin de los elementos de un formulario es <INPUT>, que se utiliza para agregar botones, mens de seleccin, contraseas, etc. A <INPUT> se le pueden asignar los 8 valores que analizamos a continuacin.

type="TEXT"
<INPUT type="TEXT" name="nombre" maxlength="40" size="33" value="Tu nombre">

Este valor crea los tpicos campos de texto, en los que generalmente se solicitan datos tales como el nombre o la direccin de correo electrnico. Es un valor usado sobre todo para informaciones no predefinidas, que cambian cada vez. TEXT tiene tres atributos opcionales, presentes tambin en el ejemplo: maxlength (el nmero mximo de caracteres que puede ser introducido en el campo y que no es posible superar), size (la anchura de la cadena dentro de la pgina) y value (visualiza un texto por defecto dentro de la cadena). EJEMPLO
tu nombre

type="PASSWORD"
<INPUT type="PASSWORD" name="nombre" maxlength="40" size="33"> Este campo de texto funciona como el anterior, pero con una pequea diferencia que su propio nombre indica: cuando se escribe dentro del cajetn blanco, no se ven los caracteres sino los clsicos asteriscos de las contraseas. En realidad, los datos no se codifican de ningn modo por lo que esta marca no consigue eliminar la inseguridad de fondo. EJEMPLO

type="CHECKBOX"
<INPUT type="CHECKBOX" name="edad" value="s" checked> Este atributo se utiliza para representar datos de tipo "s/no" y "verdadero/falso". Crea pequeas casillas cuadradas que hay que puntear o dejar en blanco. Si la casilla est punteada, INPUT restituye un valor al CGI; en caso contrario, no restituye ningn valor. Value impostado en "s" significa que por defecto la casilla est punteada. Checked controla el estado inicial de la casilla, en el momento de cargar la pgina. EJEMPLO

type="RADIO"
<INPUT type="RADIO" name="calificacin" value="suficiente"> <INPUT type="RADIO" name="calificacin" value="bueno"> <INPUT type="RADIO" name="calificacin" value="excelente"> Este atributo tiene funciones similares al visto anteriormente, pero contiene ms posibilidades de seleccin. Seleccionando una de las voces presentes, y siempre y cuando tengan todas un valor "name" idntico, las restantes se deseleccionan automticamente. SUFICIENTE

BUENO EXCELENTE

type="SUBMIT"
<INPUT type="SUBMIT" value="Enva"> El clsico botn de envo que remite el formulario con todo su contenido. La dimensin del botn depende de la longitud del texto.
Enva

EJEMPLO

type="RESET"
<INPUT type="RESET" value="Reinicio"> Botn que vuelve a impostar todo el formulario eliminando los datos introducidos.
Reinicio

EJEMPLO

type="IMAGE"
<INPUT type="IMAGE" src="pulsante.gif"> Funcin similar a la de la tecla "ENVA" pero con la diferencia de que en lugar del botn de la opcin por defecto, aparece una imagen.

EJEMPLO

TEXTAREA
<TEXTAREA cols=40 rows=5 WRAP="physical" name="comentario"></textarea> TEXTAREA se utiliza para introducir comentarios o campos que prevn muchas lneas de texto. La anchura se imposta con "cols" y la altura con "rows". WRAP="physical" establece que, en el caso de que el texto

introducido supere la anchura de la ventana, salte de lnea automticamente. EJEMPLO

SELECT
<SELECT size=1 cols=4 NAME="calificacin"> <OPTION selected value=ninguna> <OPTION value=bueno> Bueno <OPTION value=suficiente> Suficiente <OPTION value=excelente> Excelente </select> SELECT es un elemento que permite la creacin de listas con varias posibilidades de seleccin. En nuestro ejemplo, hemos hipotizado que se solicita una calificacin sobre un sitio web. EJEMPLO

Formularios sin CGI


Como ya hemos sealado varias veces en esta seccin, el uso de formularios HTML produce mejores resultados cuando se acompaa de un programa CGI residente en servidor. De todas formas, esto no excluye la posibilidad de utilizar formularios tambin sin el auxilio de CGI. Para enviar una plantilla empleando exclusivamente las marcas que HTML pone a disposicin, debemos insertar un encabezamiento similar al siguiente: <form action="mailto:nome@provider.it" method="post"> donde en lugar de "nome@provider.it", debes introducir tu direccin de correo electrnico a la que quieres que lleguen los formularios ya rellenados. El mayor inconveniente de esta eleccin reside en la falta de formatacin del contenido del formulario, aspecto en el que, por el contrario, el CGI resulta muy eficaz. Cuando un formulario es enviado al servidor, el valor de cada uno de los controles correspondientes est incluido en una cadena individual. Dicha cadena est compuesta por pares de valores nombre-valor y est delineada por "&" comerciales. A la misma se le asignan todos los valores de

los elementos denominados, en una especie de concatenacin. He aqu, a continuacin, el confuso resultado de un formulario en el que, sin pasar por un CGI, se han introducido algunos datos personales: Nombre=Massimiliano+Valente&E-mail=webmaster@html.it&ciudad %27=Roma&edad%25 mientras que con un CGI habramos obtenido el siguiente resultado: (Nombre) Massimiliano Valente (Email) webmaster@html.it (Ciudad) Roma (Edad) 25 Si para una plantilla muy simple la "criba" del contenido propiamente dicho es una operacin rpida, para formularios largos y complejos (y numerosos) resulta una va difcilmente practicable y en absoluto profesional.

You might also like