Resumen: Entrega nº20 del Tutorial básico del programador web: HTML desde cero.
Codificación aprenderaprogramar.com: CU00720B

 

 

FORMULARIOS EN HTML

En HTML, un formulario es una sección del documento destinada a que el usuario introduzca datos que van a ser enviados a algún lado. En HTML un formulario puede contener cosas muy variadas: texto normal, elementos especiales llamados controles (checkboxs, radiobuttons, comboboxs, etc.), y otros elementos especiales denominados etiquetas (labels). Explicaremos el significado de estos elementos especiales y cómo generar formularios en HTML.

Los usuarios normalmente "completan" un formulario modificando sus controles, ya sea  introduciendo texto, seleccionando una opción entre varias, etc., antes de enviar el formulario y que éste sea procesado. Escribe el siguiente código en un editor y guárdalo como ejemplo.html para que puedas visualizarlo en tu navegador. No te preocupes ahora si no entiendes algunos de los elementos que aparecen, porque los iremos explicando poco a poco.

<!DOCTYPE html>

<html>

    <head>       
        <meta charset="utf-8">
        <title>
Ejemplo del uso de formularios - aprenderaprogramar.com</title>
    </head>

<body>

<form action="http://www.aprenderaprogramar.com" method="get">

<p>

<label for="nombre">Nombre: </label>

<input type="text" name="nombre" id="nombre">

<br/> <br/>

<label for="apellido">Apellido: </label>

<input type="text" name="apellido" id="apellido">

<br/> <br/>

<label for="email">Email: </label>

<input type="text" name="email" id="email">

<br/> <br/>

<input type="radio" name="sexo" id="varon" value="Varón">

<label for="varon">Varón: </label>

<br/> <br/>

<input type="radio" name="sexo" id="mujer" value="Mujer">

<label for="mujer">Mujer: </label>

<br/> <br/>

<input type="submit" value="Enviar">

<input type="reset">

</p>

</form>

</body>

</html>

 

 

La visualización que debes obtener es algo parecido a la siguiente imagen.

 

 

Supón que hemos rellenado los datos de este formulario. Cuando pulsamos en “Enviar”, la información se envía al servidor y se utiliza para algo. ¿Qué utilidad se le puede dar a esta información? En general, un formulario html nos sirve para acceder a otra URL (dirección web) que recibe la información. Cuando la nueva URL recibe la información pueden ocurrir varias cosas: que se muestre en pantalla, que se escriba en una base de datos, que nos muestre una imagen distinta según la información que hayamos enviado…  Algunas de las cosas que hemos citado no se pueden hacer usando HTML. Por ejemplo, no podemos escribir en una base de datos usando HTML. Sin embargo, sí podemos recoger la información en un formulario o página web HTML y luego acceder a una dirección web de tipo php, asp, jsp… que son tipos de páginas web que permiten realizar otro tipo de funciones más avanzadas relacionadas con la programación, como es la escritura en bases de datos para almacenar la información.

 

 

CONTROLES

Los usuarios interaccionan con los formularios a través de los llamados controles. Un control vamos a definirlo, de forma simplificada, como un objeto que aparece en la pantalla y que es modificable por el usuario. Ejemplos de controles serían los que vamos a mostrar a continuación.

 

Checkbox o casilla de verificación: control que puede ser marcado o desmarcado por el usuario. Es muy típico cuando se requiere aceptar unas condiciones para realizar una compra en una página web, o cuando se requiere aceptar la licencia para instalar un programa.

 

 

Option Button o botón circular seleccionable (“radio”): control que puede ser marcado o desmarcado por el usuario, de forma que normalmente cuando se marca una opción se desmarca la que estuviera seleccionada previamente. Es muy típico cuando se requiere elegir entre varias opciones.

 

 

ComboBox o lista desplegable: control que muestra una opción seleccionada de entre varias posibles, y que al pulsar sobre él despliega una lista de opciones.

 

 

Atributos básicos de un control:

1.- name: identifica un control dentro de un formulario. Este atributo nos va a resultar necesario para poder rescatar la información.

2.- value: cada control tiene un valor inicial y un valor actual. Normalmente, el valor inicial de un control puede especificarse con el atributo value. El valor actual del control se hace en primer lugar igual al valor inicial. A partir de ese momento, el valor actual del control puede ser modificado mediante la acción del usuario. El valor inicial de un control no cambia. Así, cuando se carga el formulario, el valor actual de cada control se restablece a su valor inicial. Si el control no tiene un valor inicial, el efecto de una reinicialización o carga del formulario sobre ese control es indefinido. Indefinido significa que no sabemos exactamente lo que va a pasar. Para que no ocurra esto, es preferible establecer siempre un valor inicial.

3.- id: el valor de estre atributo permite relacionar un control con una etiqueta. Por ejemplo, si un control tiene por id el valor id=”email”, esto significa que ese control está relacionado con la etiqueta (label) cuyo atributo for es for=”email”.

 

Normalmente, cuando se envía un formulario para su procesamiento, para cada control se procede al envío de dos datos: su nombre (atributo name) y su valor actual, y esta información se envía a la dirección web de destino.

Ejemplo: si introducimos en el formulario que nuestro nombre es Juan, nuestros apellidos Suárez Guerra, nuestro email Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. y nuestro sexo Varón, la información que se envía a la siguiente dirección web donde se reciben los datos es:

· nombre=Juan

· apellido=Suárez Guerra

· email=Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

· sexo=Varón

 

Introduce esta información y envía el formulario cuyo código vimos anteriormente. Fíjate en la URL que aparecerá en tu navegador. Será algo así: http://www.aprenderaprogramar.com/?nombre=Juan&apellido=Su%E1rez+Guerra&email=juan%40gmail.com&sexo=Var%F3n

Lo que puedes comprobar aquí es que la información que hemos escrito en el formulario está apareciendo ahora de alguna manera en la nueva dirección web. No se muestra exactamente igual porque las direcciones web no admiten tildes, que son sustituidas por un código equivalente a la letra con tilde. Tampoco las direcciones web admiten el símbolo @, que también es sustituido.

 

Label o etiqueta: podría considerarse que no es un control en sentido estricto, puesto que es algo que no es modificable por el usuario. Un label o etiqueta es un texto que va asociado a un control con el que puede interactuar un usuario. Un label contiene habitualmente dos informaciones importantes: el nombre del control con el que va asociado, y el texto a mostrar.

Por ejemplo el código: <label for="nombre">Introduzca su nombre: </label>

Nos indica que el label tiene el atributo for establecido como igual a nombre. Eso signfica que el label va asociado a un control dentro del formulario cuyo atributo será nombre. Por otro lado, el texto que mostrará este label será “Introduzca su nombre:”.

En realidad un label puede considerarse una parte “poco importante” en un formulario, puesto que se limita a mostrar un texto y esto también se puede hacer de otras maneras. De hecho, podríamos prescindir de su uso. En vez de tener el texto entre etiquetas <label> y </label> podríamos tenerlo entre etiquetas <p> y </p>. ¿Por qué usar entonces los label? Porque las páginas web conviene que estén bien estructuradas y que todos los programadores se atengan a las mismas normas. En este caso, las normas estándares para construcción de formularios nos dicen que los textos asociados a los controles los pongamos dentro de etiquetas label, y que indiquemos el control al que va asociada la etiqueta mediante el atributo for. También nos servirá para poder aplicar estilos específicos a los textos de formularios mediante técnicas CSS. Finalmente, tener en cuenta que a medida que vayamos haciendo páginas más complejas, no haber hecho las cosas bien puede acarrearnos problemas.

 

 

LA ETIQUETA FORM. POSIBILIDAD DE TENER VARIOS FORMULARIOS EN UNA WEB.

Cuando creamos un formulario en HTML, todo el contenido que lleva lo incluimos entre las etiquetas de apertura <form> y de cierre </form>. Estas dos etiquetas delimitan el formulario. Dentro de una página web puede haber varios formularios, por ejemplo podríamos tener dos formularios en una página web para que los usuarios de un tipo rellenen un formulario y los de otro tipo otro formulario:

- “Si eres mayor de 18 años rellena este formulario”

- “Si eres menor de 18 años rellena este formulario”

 

En muchísimas páginas web hay un formulario único. Por ejemplo “Rellena tus datos personales”. Pero debemos saber que podríamos tener dos, tres o más formularios. La forma de delimitar cada uno de ellos es como hemos dicho: usando las etiquetas de apertura y cierre <form> y </form>.

La etiqueta form suele incluir dos atributos. El atributo action indica la dirección web (URL) a la que se dirigirá la navegación cuando se pulse en el botón de envío del formulario. El atributo method hace referencia a cómo se enviará la información.

Hay diversas cuestiones relacionadas con los formularios que todavía no hemos explicado. Lo iremos haciendo poco a poco.

 

 

EJERCICIO

Basándote en el código de ejemplo que hemos visto, crea una página web que cumpla con lo que indicamos a continuación:

a) Como título principal de la página debe figurar con etiquetas h1 el texto “Inscripción al Congreso de Medicina Santiago 2048”

b) Debe contener dos formularios: el primero será “Inscripción al Congreso para médicos especialistas” y el segundo “Inscripción al congreso para médicos generalistas”. Estos títulos deben figurar antes del formulario con etiquetas h2.

c) El formulario para médicos especialistas debe solicitar nombre, apellidos, especialidad y año de obtención de la especialidad.

d) El formulario para médicos generalistas debe solicitar nombre, apellidos, centro médico donde ejerce y año de obtención del título.

 

Nota: para evitar confusiones en el envío de datos, todos los campos name deben tener valores diferentes, es decir, en ambos formularios no se pueden repetir nombres los nombres identificativos empleados.

Para comprobar si tus respuestas son correctas puedes consultar en los foros aprenderaprogramar.com.

 

 

 

 

 

 

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link:  Ver curso completo.

Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

 

Descargar archivo: