11. Formularios

Una de las mayores ventajas de la web es que resulta tremendamente interactiva. Los usuarios de una página no tienen más que escribir al autor de la misma para comentarle cualquier cosa de la misma. Sin embargo, si deseamos que nos digan sólo unas cosas concretas (responder a alguna pregunta, seleccionar entre varias opciones, etc..) deberemos utilizar formularios. Por ejemplo,

<FORM ACTION="" METHOD=POST>
Nombre:<BR><INPUT NAME="nombre" TYPE=TEXT SIZE=32>
<BR>¿Cuantos son dos y dos?<BR>
<INPUT NAME="Respuesta" TYPE=RADIO VALUE="mal">3<BR>
<INPUT NAME="Respuesta" TYPE=RADIO VALUE="bien">4<BR>
<INPUT NAME="Respuesta" TYPE=RADIO VALUE="mal">5<BR>
<INPUT TYPE="Submit" VALUE="Comprobar">
</FORM>

se verá así:

Nombre:

¿Cuantos son dos y dos?
3
4
5

El botón no hace nada porque no hemos definido qué debe hacer, así que sed buenos y no lo pulséis.

Todos los elementos de un formulario deben estar encerrados entre <FORM> y </FORM>. Como parámetros cabe destacar tres. ACTION define el URL que deberá gestionar el formulario. Puede ser una dirección de correo (precedida del inevitable mailto:, en cuyo caso deberemos añadir el parámetro ENCTYPE="text/plain" para que lo que recibamos resulte legible.

Por otro lado, tenemos el parámetro METHOD define la manera en que se mandará el formulario. Es recomendable utilizar POST. En el caso de que estemos mandando el formulario a nuestra dirección de correo electrónico es obligado usarlo.

Ahora vamos a ver uno a uno todos los elementos que podemos incluir en un formulario. Veremos que todos ellos tienen algo en común. Como el resultado de cualquier formulario es una lista de variables y valores asignados a las mismas, todos ellos tendrán un atributo en común: el nombre de su variable. El parámetro también será común a todos: NAME.



11.1. Cajas de texto

Existen tres maneras de conseguir que el usuario introduzca texto en nuestro formulario. Las dos primeras se obtienen por medio de la etiqueta <INPUT>:

<INPUT TYPE=TEXT>
<INPUT TYPE=PASSWORD>

El primero nos dibujará una caja donde escribir un texto (de una sola línea). El segundo es equivalente, pero no veremos lo que tecleemos en él. Estos son los atributos para modificarlos:

ParámetroUtilidad
SIZETamaño de la caja de texto.
MAXLENGTHNúmero máximo de caracteres que puede introducir el usuario.
VALUETexto por defecto que contendrá la caja.

Por otro lado, puede que necesitemos que el usuario pueda introducir más de una línea. En ese caso se utilizará la siguiente etiqueta:

<TEXTAREA>
Por defecto
</TEXTAREA>

Lo que incluyamos entre las dos etiquetas será lo que se muestre por defecto dentro de la caja. Admite estos parámetros:

ParámetroUtilidad
ROWSFilas que ocupará la caja de texto.
COLSColumnas que ocupará la caja de texto.


11.2. Opciones

Si lo que deseamos es que el usuario decida entre varias opciones podremos hacerlo de dos modos. El primero es el que vimos en el ejemplo inicial:

3<INPUT NAME="Respuesta" TYPE=RADIO VALUE="mal"><BR>
4<INPUT NAME="Respuesta" TYPE=RADIO VALUE="bien"><BR>
5<INPUT NAME="Respuesta" TYPE=RADIO VALUE="mal"><BR>
3
4
5

Para asociar varios botones de radio a una misma variable les pondremos a todos ellos el mismo NAME. Aparte de esto acepta los siguientes parámetros:

ParámetroUtilidad
VALUEEste es el valor que asignará a la variable.
CHECKEDSi lo indicamos en una de las opciones esta será la que esté activada por defecto.

Pero también tenemos una posibilidad que ocupa bastante menos: las listas desplegables. Para emplearlas deberemos utilizar dos etiquetas, SELECT y OPTION:

<SELECT NAME="Navegador">
  <OPTION>Netscape
  <OPTION>Explorer
  <OPTION>Opera
  <OPTION>Lynx
  <OPTION>Otros
  </SELECT>

Los parámetros que admite SELECT son las siguientes:

ParámetroUtilidad
SIZEEl número de opciones que podremos ver. Si es mayor que 1 veremos una lista de selección y, si no, veremos una lista desplegable.
MULTIPLESi lo indicamos podremos elegir más de una opción.

Y OPTION estos:

ParámetroUtilidad
VALUEEste es el valor que asignará a la variable.
SELECTEDSi lo indicamos en una de las opciones esta será la seleccionada por defecto.


11.3. Botones del formulario

Existen dos: uno que se utiliza para mandar el formulario y otro que sirve para limpiar todo lo que haya rellenado el usuario:

<INPUT TYPE=SUBMIT><BR>
<INPUT TYPE=RESET>

Podemos cambiar el texto que el navegador pone por defecto en esos botones utilizando el parámetro VALUE.



11.4. Otros elementos

Puede que necesitos que el usuario sencillamente nos confirme o niegue algo. Lo podremos conseguir por medio de controles de confirmación:

<INPUT NAME="Belleza" TYPE=CHECKBOX>Me considero guapo/aMe considero guapo/a

Si queremos que el control esté activado por defecto le añadiremos el parámetro CHECKED. El formulario asignará a la variable NAME el valor on u off.

Por último, existe la posibilidad de que necesitemos que, en el formulario, tengamos alguna variable con un valor previamente asignado. Por ejemplo, en todos los cursos que tengo el formulario es el mismo. Y de alguna manera tendré que distinguirlos cuando me lleguen, digo yo. Así que incluyo algo como esto:

<INPUT TYPE=HIDDEN NAME="Curso" VALUE="HTML 4.0">

De este modo ya sé de que curso me están hablando.

Estructura del documentoControles avanzados para formularios
© 1998-2000 Daniel Rodríguez