5-Tema 05 - Programacion V
5-Tema 05 - Programacion V
5-Tema 05 - Programacion V
PROGRAMACIÓN V
Tema 5- Formularios, envío de datos y procesamiento.
Para realizar el envío de datos al servidor para luego ser procesados por PHP, lo
primero que tenemos que hacer es crear un formulario del lado del cliente, es decir en
HTML. Esto nos va a servir para que el cliente ingrese datos y luego los mande al
servidor, el servidor devuelve el resultado de ese envío para ser visualizado por el
navegador. En otras palabras, representa una sección de un documento que contiene
controles interactivos que permiten a un usuario enviar información a un servidor web.
Para crear un formulario debemos utilizar la etiqueta form, seguido de la propiedades
action y method.
<!DOCTYPE html>
<html lang="es">
<head>
<title>Formularios</title>
</head>
<body>
<form action="" method="">
</form>
</body>
</html>
El atributo action representa la dirección URL del archivo que va a procesar los datos,
es decir a donde se va a enviar el mismo para luego ser procesado.
Puede ser en el mismo directorio o en otro distinto, pero debemos tener en cuenta de
escribir la ruta correctamente, de lo contrario nos daría error. Nosotros vamos a
procesar los datos de nuestro formulario en un archivo con extensión .php y el mismo
puede tener cualquier nombre, siempre es conveniente que tenga un nombre relativo a
lo que va a hacer dicho formulario.
Por último tenemos la propiedad method, que nos indica la forma en que se enviarán
los datos para ser procesados, nosotros veremos dos formas de envío:
• Post, los datos del formulario son incluidos en el cuerpo del formulario y son
enviados al servidor.
• Get, los datos del formulario son adjuntados a la URL del atributo action con
un signo de pregunta (?) como separador. Y la URL resultante es enviada al
servidor. Esta forma de envío es insegura ya que los datos como dije
anteriormente, se escriben en la URL, por eso si hacemos un formulario de
login por ejemplo, el usuario y contraseña los vería cualquiera sobre la
dirección de la página web de nuestro navegador, y podría ser cambiado
fácilmente.
En esta imagen vemos como una multiplicación que realizo el usuario en dos text
llamados text1 y text2 es enviada al servidor por medio de la URL utilizando GET.
También podemos observar el valor que ingreso el usuario (5) en cada uno de los text,
como así también que fue lo que eligió de las opciones de la lista (multiplicar).
En el caso que quisiéramos cambiar un valor que envió el usuario, simplemente
haciendo clic en la URL del navegador por ejemplo, en el text1=5, lo cambiamos por 7
y refrescamos (F5), veríamos otro resultado (35). Sin que tengamos que cambiar algo
en el archivo .php del servidor o en el archivo HTML
En este ejemplo, el formulario cuenta con un control HTML input del tipo text, en
donde el usuario debe ingresar su nombre y después hacer clic en el botón Enviar,
para mandar esos datos que ingresó al servidor para ser procesados por medio del
lenguaje de programación PHP.
En la siguiente imagen vemos el resultado desde el navegador, más adelante veremos
cómo darle forma utilizando estilos CSS y Bootstrap:
Controles de un formulario (HTML 4 y HTML5)
Etiqueta (Label)
El control label (etiqueta) se emplea en un formulario para mostrar información que el
usuario no puede modificar, como por ejemplo descripciones, mensajes de ayuda, y
para identificar a otros controles, como por ejemplo los cuadros de texto.
</form>
</form>
<label>Ingrese su contraseña</label>
<input type="password" name="contraseña">
En los casos de los tipos números (type="number) o número de teléfono
(type="tel"), el framework interpreta que se trata de números, entonces nos facilita el
ingreso, mostrándonos el teclado numérico y no el estándar.
En el caso del control de tipo número, aparte de mostrarnos un teclado simplificado, si
tocamos sobre el campo de texto, se despliega una lista ordenada con los números
negativos y positivos, para poder seleccionar el que necesitemos sin que tengamos
que tipearlo sobre el teclado.
Con los controles del tipo email y url pasa exactamente lo mismo: el dispositivo nos
muestra un teclado con @ y .com y otros caracteres especiales, para facilitarnos el
ingreso de datos. Además al definirlo como tipo email o url, estamos restringiendo el
ingreso de datos a un formato válido.
Los controles que son del tipo fecha (type=”date”), fecha y hora (type=”datetime”)
y semana (type=”week”) vienen predeterminados directamente, es decir, si tocamos
sobre el componente lista se despliega un calendario para poder seleccionar un día,
fecha o semana, que necesitemos agregar al cuadro de texto. En el caso de un control
del tipo hora (type=”time”), al tocar el campo cuadro de texto podemos visualizar el
formato de hh:mm para poder escribir sobre él, o bien seleccionar en la lista
desplegable el número que necesitemos usar.
Para generar un control que nos permita seleccionar colores de una lista, usamos el
tipo color (type=”color”).
El tipo submit (type=”submit”) nos crea un botón de envío. Al pulsarlo, todos los
datos ingresados en los controles del formulario se enviarán para ser procesados.
Textarea
Si bien el text input y el textarea nos sirven para el ingreso de datos por parte del
usuario, la diferencia que existe entre ambos es que textarea permite el ingreso de
texto multilínea en el formulario.
Si tan sólo colocamos el atributo <textarea></textarea>, va a permitir al usuario
ingresar más de una línea de texto.
Un ejemplo clásico es un formulario de consulta, en donde el usuario ingresa en el
textarea la consulta y esta es enviada al servidor para luego ser procesada como se
muestra en el siguiente ejemplo:
También disponemos, en el atributo type, del valor search que nos sirve para ingresar
valores de búsqueda. Este cuenta con un icono –ya predefinido– de una lupa en el
costado izquierdo. Cuando ingresamos texto, en el costado derecho del cuadro de
texto aparece un icono en forma de cruz, que nos permite al presionarlo borrar lo que
escribimos.
Podemos usar la siguiente sintaxis para crear un campo de búsqueda:
Slider
El slider es otro valor que recibe el atributo type de la etiqueta input (<input
type="range">). Los sliders nos permiten ajustar un valor entre un rango determinado
mediante un componente deslizable.
El slider viene acompañado de un text input a la derecha, en el cual podemos ingresar
un valor que será asociado directamente a la barra deslizante. Lo mismo ocurre si nos
deslizamos con la barra: nos mostrara el mismo valor en el text input de la derecha,
por lo que siempre estarán sincronizados asegurándonos que tengan el mismo valor
para luego ser procesados.
Los atributos que tenemos que tener en cuenta para configurar el slider son el valor de
comienzo del rango, el valor final y el valor de incremento.
Para esto disponemos de los atributos min y max que serían, respectivamente, el
valor inicial y el final. Para el incremento, contamos con el atributo step.
Para darle un mejor aspecto contamos también con el atributo data-highlight que,
pasándole por valor “true” nos pinta en color el valor utilizado en la barra.
La sintaxis para crear un control del tipo slider es la siguiente:
<label>Slider: </label>
<input type="range" name="slider" id="slider"
max="100" min="00" value="25" step="20" data-
highlight="true" />
Botón de opción (radio button)
El control radio button (‘botón de opción’) permite, tener más opciones: no
solamente tendríamos verdadero o falso, sino que nos sirve cuando necesitamos que
el usuario elija una sola opción entre varias.
Un ejemplo podría ser la elección de pago de un determinado producto, donde las
opciones a elegir por el usuario serían: “Pago en efectivo”, “Pago con tarjeta de
crédito” o “Pago con tarjeta de débito”. En este ejemplo, necesitamos una sola
opción para después ser procesada. La elección del usuario nos devolvería solamente
un valor, pero con este control podría elegir entre varias.
La sintaxis que nos permite incluir este tipo de controles en un formulario es la
siguiente:
<fieldset>
<legend>Titulo del que se visualiza con el
grupo:</legend>
<input name="radio" id="radio-1" type="radio"
value="opción1" checked>
<label for="radio-1">Opción 1</label>
<input name="radio" id="radio-2" type="radio"
value="opción2">
<label for="radio-2">Opción 2</label>
</fieldset>
<fieldset >
<legend>Elija una opción de pago:</legend>
<input name="radio" id="radio-1" type="radio"
value="efectivo" checked>
<label for="radio-1">Pago en efectivo</label>
<input name="radio" id="radio-2" type="radio"
value="credito">
<label for="radio-2">Pago con Tarjeta de
Crédito</label>
<input name="radio" id="radio-3" type="radio"
value="debito">
<label for="radio-3">Pago con Tarjeta de
Débito</label>
</fieldset>
Este botón es un componente input que por propiedad type recibe el valor submit.
Lo que nos genera el código anterior, es un botón clásico de enviar, que al ser
presionado por el usuario enviará los datos al servidor para luego ser procesados a la
URL que indicamos en la propiedad action del formulario.
Nota: La mayoría de la información de formularios HTML fue extraída del libro jQuery
Mobile del editorial Users, que es de mi autoría.
Les dejo también un video para ampliar conocimientos:
https://www.youtube.com/watch?v=QDOfODwsfuQ
Otra web con controles:
https://www.w3.org/community/webed/wiki/Es/Elementos_de_formulario_adicionales_d
el_HTML5
$nombre = $_POST['txt_nombre'];
?>
Nota: utilizo <meta charset="UTF-8"> para que se puedan ver los acentos en la
página, caso contrario no se verían (más información sobre codificación en:
https://es.wikipedia.org/wiki/UTF-8).
$resultado = $_POST['txt_n1'] +
$_POST['txt_n2'];
?>
1. Realizar un formulario HTML que tenga las cuatro operaciones básicas (suma,
resta, multiplicación y división). Y un archivo PHP que procese la información
enviada por la página HTML, mostrando el resultado de la operación elegida.
En el diseño pueden utilizar un combo para seleccionar la operación deseada:
2. Realizar una página web que pida información al usuario, nombre, apellido,
teléfono y email. Dicha información deberá ser procesada y al ejecutar el botón
submit, le tiene que mostrar al usuario la siguiente frase: “Bienvenido al
sistema [Nombre][Apellido], su teléfono es: [Telefono] y su e-mail es: [Mail]”.
3. Realizar un sitio web en donde le pida al usuario su Nombre y su edad. La
misma deberá ser procesada y si el usuario ingreso que su edad es mayor a 18
años, mostrarle el siguiente mensaje: “Bienvenido [Nombre] al sistema”, en
caso de que sea menor a 18 años el mensaje será el siguiente: “[Nombre] Ud,
no puede ingresar al sistema”.
4. Realizar una página web que pida al usuario tres lados de un triángulo, procese
los datos y muestre el resultado al usuario diciéndole que tipo de triángulo es.
5. Al formulario del punto 3 agregarle dos radio buttons que le digan al usuario si
acepta los términos y condiciones para entrar a la web, de aceptarlos y tener la
edad mayor a 18 años mostrarle el mensaje “Bienvenido [Nombre] al sistema”,
en caso de que el usuario sea menor a 18 años o no acepte los términos y
condiciones para entrar a la web le diga: “[Nombre] Ud., no puede ingresar al
sistema”.
Autoevaluación