lunes, 2 de junio de 2025

EJERCICIO BASICO - FORMULARIO

 EJERCICIO BASICO - FORMULARIO

Cómo implementarlo en VS Code:

  1. Abre VS Code.
  2. Crea una nueva carpeta para tu proyecto (ej. mi-formulario).
  3. Dentro de esa carpeta, crea dos archivos:
    • formulario.html
    • estilos.css
  4. Copia el código HTML en formulario.html.
  5. Copia el código CSS en estilos.css.
  6. Guarda ambos archivos.
  7. Puedes abrir formulario.html directamente en tu navegador web (haz clic derecho en el archivo en el explorador de VS Code y selecciona "Open with Live Server" si tienes la extensión, o "Copy Path" y pégalo en la barra de direcciones de tu navegador).

 

Puedes copiar y pegar esto directamente en archivos .html y .css en VS Code.

 

1. Archivo HTML (por ejemplo, formulario.html):

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Formulario Básico</title>
    <link rel="stylesheet" href="estilos.css"> <!-- Enlazamos el archivo CSS -->
</head>
<body>
    <div class="contenedor-formulario">
        <h1>Formulario de Contacto</h1>


        <form action="/enviar-datos" method="POST">
<!--
<form action="https://edutechsiglo21.com/2025/procesar_formulario.php" method="POST">
        -->   
<!-- Campo Nombre -->
            <div class="grupo-formulario">
                <label for="nombre">Nombre Completo:</label>
                <input type="text" id="nombre" name="nombre_usuario" required>
            </div>
 
            <!-- Campo Email -->
            <div class="grupo-formulario">
                <label for="email">Correo Electrónico:</label>
                <input type="email" id="email" name="email_usuario" required>
            </div>

            <!-- Campo Asunto -->
            <div class="grupo-formulario">
              <label for="asunto">Asunto:</label>
                <input type="text" id="asunto" name="asunto_mensaje">
            </div>

            <!-- Campo Mensaje -->
            <div class="grupo-formulario">
                <label for="mensaje">Mensaje:</label>
                <textarea id="mensaje" name="mensaje_usuario" rows="5" required></textarea>
            </div> 

            <!-- Botón de Envío -->
            <div class="grupo-formulario">
                <button type="submit">Enviar Mensaje</button>
            </div>
        </form>
    </div>
</body>
</html>

2. Archivo CSS (por ejemplo, estilos.css, en la misma carpeta que formulario.html):

/* Estilos generales para el cuerpo de la página */
body {
    font-family: Arial, sans-serif; /* Tipo de fuente agradable */
    background-color: #f4f4f4; /* Color de fondo suave */
    display: flex; /* Para centrar el formulario */
    justify-content: center;
    align-items: center;
    min-height: 100vh; /* Asegura que ocupe al menos toda la altura de la ventana */
    margin: 0;
    padding: 20px;
    box-sizing: border-box; /* Para que el padding no afecte el ancho total */
}

/* Contenedor principal del formulario */
.contenedor-formulario {
    background-color: #ffffff; /* Fondo blanco para el formulario */
    padding: 25px;
    border-radius: 8px; /* Bordes redondeados */
    box-shadow: 0 0 15px rgba(0, 0, 0, 0.1); /* Sombra sutil */
    width: 100%;
    max-width: 500px; /* Ancho máximo del formulario */
}

/* Título del formulario */
h1 {
    text-align: center;
    color: #333;
    margin-bottom: 20px;
}

/* Estilos para cada grupo de label e input */
.grupo-formulario {
    margin-bottom: 15px;
}

.grupo-formulario label {
    display: block; /* Hace que la etiqueta ocupe toda la línea */
    margin-bottom: 5px;
    color: #555;
    font-weight: bold;
}

.grupo-formulario input[type="text"],
.grupo-formulario input[type="email"],
.grupo-formulario textarea {
    width: 100%; /* Hace que el campo ocupe todo el ancho disponible */
    padding: 10px;
    border: 1px solid #ddd; /* Borde sutil */
    border-radius: 4px;
    box-sizing: border-box; /* Para que el padding no afecte el ancho total */
    font-size: 16px;
}

.grupo-formulario textarea {
    resize: vertical; /* Permite redimensionar solo verticalmente */
}

/* Estilos para el botón de envío */
.grupo-formulario button[type="submit"] {
    background-color: #007bff; /* Color de fondo azul */
    color: white;
    padding: 12px 20px;
    border: none;
    border-radius: 4px;
    cursor: pointer; /* Cambia el cursor al pasar por encima */
    font-size: 16px;
    width: 100%; /* Botón de ancho completo */
    transition: background-color 0.3s ease; /* Transición suave para el hover */
}

.grupo-formulario button[type="submit"]:hover {
    background-color: #0056b3; /* Color más oscuro al pasar el ratón */
}

/* Estilos para el foco en los campos (opcional, pero mejora la UX) */
.grupo-formulario input:focus,
.grupo-formulario textarea:focus {
    outline: none; /* Quita el borde por defecto del navegador */
    border-color: #007bff; /* Cambia el color del borde al enfocar */
    box-shadow: 0 0 5px rgba(0, 123, 255, 0.5);
}

Explicación del Código:

HTML (formulario.html):

  • <!DOCTYPE html> y estructura básica: Define el tipo de documento y la estructura HTML.
  • <meta charset="UTF-8">: Asegura la correcta visualización de caracteres especiales.
  • <meta name="viewport"...>: Esencial para el diseño responsivo, para que la página se vea bien en móviles.
  • <link rel="stylesheet" href="estilos.css">: Enlaza el archivo CSS externo.
  • <div class="contenedor-formulario">: Un div para agrupar y centrar todo el formulario.
  • <h1>: Título del formulario.
  • <form action="/enviar-datos" method="POST">:
    • action="/enviar-datos": Indica que cuando se envíe el formulario, los datos irán a una URL (ficticia en este caso) llamada /enviar-datos. En una aplicación real, esta sería la URL de un script del servidor que procesa los datos.
    • method="POST": Los datos se enviarán de forma oculta.
  • <div class="grupo-formulario">: Se usa un div para agrupar cada label con su input o textarea. Esto ayuda a aplicar estilos y espaciado.
  • <label for="id_del_campo">:
    • El atributo for se vincula con el id del campo de entrada correspondiente. Esto mejora la accesibilidad y permite que al hacer clic en la etiqueta, el foco se ponga en el campo.
  • <input type="text" id="nombre" name="nombre_usuario" required>:
    • type="text": Campo de texto de una línea.
    • id="nombre": Identificador único para este elemento (usado por el label).
    • name="nombre_usuario": Nombre que se enviará al servidor para identificar este dato.
    • required: Atributo HTML5 que hace que este campo sea obligatorio.
  • <input type="email" ...>: Similar al de texto, pero optimizado para emails (puede tener validación del navegador).
  • <textarea id="mensaje" ... rows="5">:
    • rows="5": Sugiere una altura inicial para el área de texto (5 líneas).
  • <button type="submit">: Crea un botón que, al ser presionado, envía el formulario.

CSS (estilos.css):

  • body: Estilos básicos para la página, incluyendo centrado del contenido.
  • .contenedor-formulario: Estilos para el div que envuelve el formulario (fondo, padding, sombra, bordes redondeados).
  • h1: Estilos para el título.
  • .grupo-formulario: Agrega un margen inferior a cada grupo de etiqueta/campo.
  • .grupo-formulario label: Hace que la etiqueta sea un bloque (ocupe su propia línea) y le da un poco de estilo.
  • .grupo-formulario input[type="text"], ... textarea: Estilos comunes para los campos de entrada y el textarea (ancho completo, padding, bordes).
  • .grupo-formulario textarea: Permite que el textarea solo se pueda redimensionar verticalmente.
  • .grupo-formulario button[type="submit"]: Estilos para el botón de envío (color, padding, etc.).
  • :hover para el botón: Cambia el color del botón cuando el ratón pasa por encima.
  • :focus para los campos: Mejora la experiencia del usuario al resaltar el campo que tiene el foco.



FORMULARIOS HTML: LA PUERTA DE ENTRADA A LA INTERACCIÓN

FORMULARIOS HTML: LA PUERTA DE ENTRADA A LA INTERACCIÓN

 

¿Qué es un Formulario HTML?

Imagina que una página web necesita obtener información de ti. Podría ser tu nombre para registrarte, tu opinión sobre un producto, o los datos de tu tarjeta para una compra. Los formularios HTML son la herramienta que permite a las páginas web recolectar esa información de los usuarios.

En esencia, un formulario es una sección de un documento HTML que contiene controles interactivos (como campos de texto, botones, casillas de verificación, etc.) que permiten a los usuarios ingresar datos.

¿Para qué sirven los Formularios?

Los formularios son fundamentales para una web dinámica e interactiva. Se utilizan para una gran variedad de propósitos, como:

·         Registros de usuarios: Crear nuevas cuentas.

·         Inicio de sesión (Login): Acceder a cuentas existentes.

·         Búsquedas: Enviar términos de búsqueda a un motor.

·         Comentarios y retroalimentación: Dejar opiniones o mensajes.

·         Compras online: Ingresar datos de envío y pago.

·         Encuestas y votaciones: Recopilar opiniones.

·         Subida de archivos: Enviar documentos, imágenes, etc.

·         Contacto: Enviar mensajes a los administradores del sitio.

 

Los Componentes Clave de un Formulario:

Aunque hay muchos elementos, los más básicos y esenciales son:

La Etiqueta <form>: El Contenedor Principal

Todo formulario comienza y termina con la etiqueta <form>. Es como la caja que envuelve todos los campos y botones.

Tiene dos atributos muy importantes:

·         action: Especifica la URL (la dirección web) a donde se enviarán los datos del formulario cuando el usuario lo envíe (generalmente un script en el servidor que procesará la información).

·         method: Define cómo se enviarán los datos. Los dos métodos más comunes son:

·         GET: Los datos del formulario se añaden a la URL visible en la barra de direcciones del navegador. Es útil para búsquedas o cuando los datos no son sensibles.

·         POST: Los datos del formulario se envían en el cuerpo de la solicitud HTTP, de forma oculta. Es el método preferido para información sensible (como contraseñas) o grandes cantidades de datos.

 

<form action="/procesar-datos.php" method="POST">

    <!-- Aquí irán los campos del formulario -->

</form>

 

Elementos de Entrada (<input>, <textarea>, <select>): Los Campos para Ingresar Datos

Dentro de la etiqueta <form>, colocamos los diferentes campos donde el usuario escribirá o seleccionará información.

<input>: Es la etiqueta más versátil. Su comportamiento cambia según su atributo type. Algunos tipos comunes son:

·         type="text": Para una línea de texto (nombres, asuntos, etc.).

·         type="password": Para contraseñas (el texto se oculta).

·         type="email": Para direcciones de correo electrónico (puede incluir validación básica).

·         type="submit": Crea un botón para enviar el formulario.

·         type="checkbox": Una casilla que se puede marcar o desmarcar (para opciones múltiples).

·         type="radio": Un botón de opción (permite seleccionar solo una opción de un grupo).

<textarea>: Para campos de texto de múltiples líneas (como comentarios o mensajes largos).

<select> y <option>: Para crear listas desplegables donde el usuario elige una o varias opciones.

 

<form action="/procesar-datos.php" method="POST">

    Nombre: <input type="text" name="nombre_usuario">

    <br>

    Mensaje: <textarea name="mensaje_usuario"></textarea>

    <br>

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

</form>

 

Las Etiquetas (<label>): Haciendo los Formularios Más Amigables

·         La etiqueta <label> se usa para asociar un texto descriptivo a un campo de entrada.

·         Mejora la accesibilidad (los lectores de pantalla pueden leer la etiqueta cuando el campo tiene el foco) y la usabilidad (hacer clic en la etiqueta activa el campo asociado).

·         Se conecta al campo mediante el atributo for en la <label> (que coincide con el id del campo de entrada).

<form action="/procesar-datos.php" method="POST">

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

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

    <br>

    <input type="submit" value="Enviar Información">

</form>

 

El Atributo name: Identificando los Datos

·         Cada campo de entrada que envía datos al servidor (como <input>, <textarea>, <select>) debe tener un atributo name.

·         El valor del atributo name se usa como el "nombre" de la pieza de información que se envía. Cuando el servidor recibe los datos, usa este name para saber qué dato es cuál.

·         Ejemplo: Si tienes <input type="text" name="ciudad">, el servidor recibirá algo como ciudad=Madrid.

 

En Resumen:

·         Los formularios son la forma en que las páginas web recopilan información de los usuarios.

·         Se crean con la etiqueta <form>, que especifica a dónde y cómo enviar los datos (action y method).

·         Dentro del <form>, se usan elementos como <input>, <textarea>, y <select> para crear los campos.

·         Las etiquetas <label> mejoran la accesibilidad y usabilidad.

·         El atributo name es crucial para que el servidor identifique cada dato enviado.

  


EJERCICIO BASICO - FORMULARIO

 EJERCICIO BASICO - FORMULARIO Cómo implementarlo en VS Code: Abre VS Code. Crea una nueva carpeta para tu proyecto (ej. mi-formula...