El formulario de citas de LUVEN (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/LVHJ-8/Proyecto_mecanica/llms.txt
Use this file to discover all available pages before exploring further.
Frontend/cita.php) permite reservar un turno en el taller sin necesidad de llamar por teléfono. Al seleccionar una fecha, el sistema consulta automáticamente la base de datos y deshabilita en rojo los horarios que ya tienen citas confirmadas. Si el usuario no tiene cuenta, el mismo formulario crea una de forma automática al completar la reserva.
URL de acceso
Estructura del formulario
El formulario está dividido en tres secciones: datos personales, datos del vehículo y selección de fecha y horario. El formulario envía todo porPOST al controlador:
Sección 1: Datos personales
Nombre completo del titular de la cita. Ejemplo:
Juan Pérez. Campo HTML: nombre.Correo electrónico. Se usa para identificar o crear la cuenta del usuario. Campo HTML:
correo.Número de teléfono o WhatsApp para contacto. Ejemplo:
987654321. Campo HTML: telefono.Contraseña para la cuenta de cliente que se crea automáticamente al reservar. Si el correo ya existe, se utiliza la cuenta existente. Campo HTML:
password.Sección 2: Datos del vehículo
Número de placa del vehículo en formato peruano. Ejemplo:
ABC-123. Campo HTML: placa.Marca y modelo del vehículo en texto libre. Ejemplo:
Toyota Corolla 2022. Campo HTML: vehiculo.Sección 3: Fecha y horario
Fecha seleccionada para la cita en formato
YYYY-MM-DD. Proviene del input date con id fecha-cita.Horario elegido. Campo oculto (
hidden) con id hora-seleccionada. Su valor es establecido por JavaScript al hacer clic en uno de los botones de horario. Formato: HH:MM en 24 horas (ej. 14:00).Horarios disponibles
Los turnos están definidos de forma fija en el HTML del formulario. Hay 6 bloques de hora por día:data-hora (24h) | Etiqueta mostrada |
|---|---|
08:00 | 08:00 AM |
09:30 | 09:30 AM |
11:00 | 11:00 AM |
14:00 | 02:00 PM |
15:30 | 03:30 PM |
17:00 | 05:00 PM |
data-hora con el valor en formato 24 horas, que es el que se almacena en la base de datos y se envía en el POST.
Verificación de disponibilidad en tiempo real
Cuando el usuario selecciona una fecha en el calendario, JavaScript realiza una peticiónfetch asíncrona al endpoint de disponibilidad. Los horarios ya reservados (estado distinto de Cancelado) se marcan en rojo y se deshabilitan automáticamente.
Endpoint de disponibilidad
citas y devuelve un array JSON con los horarios ocupados:
Frontend/verificar_disponibilidad.php
Código JavaScript de disponibilidad
assets/js/agendar.js
Estados visuales de los botones de horario
| Estado | Clase CSS | Color | Interacción |
|---|---|---|---|
| Disponible | (sin clase especial) | Azul | Clickeable |
| Ocupado | ocupado | Rojo | Deshabilitado |
| Seleccionado | seleccionado | Verde | El valor se guarda en el campo oculto |
Flujo completo de reserva
Ingresar datos personales y del vehículo
El usuario completa nombre, correo, teléfono, contraseña, número de placa y descripción del vehículo (marca y modelo).
Seleccionar la fecha
Al elegir una fecha en el calendario, el script
agendar.js realiza automáticamente la consulta de disponibilidad y actualiza el estado visual de los botones de horario.Elegir un horario disponible
El usuario hace clic en uno de los bloques azules. El botón cambia a verde y su valor
data-hora se copia al campo oculto hora_seleccionada.Si ya tienes sesión activa, la barra superior de la página mostrará los enlaces Ver Carrito y Cerrar Sesión. Si navegas a
Frontend/cita.php sin sesión, aparecerá una alerta informativa con el mensaje "Para continuar es necesario que se registre o inicie sesión.", pero el formulario de citas sigue siendo accesible y funcional para todos los visitantes — la cuenta se crea automáticamente al completar la reserva.