74 CONTROLLER para verificar horarios en la base de datos FULLCALENDAR en SISTEMA (PHP y MySql) FullStack
Duración: 9 min
Módulo: 🔄 Lógica de Registro, Login y Reservas (Back-End Avanzado)
Lección 11 de
12
Descripción
🎬 Lección 74: Código para Verificación de Horarios y Prevención de Duplicados 🔒
Esta lección finaliza la implementación de la lógica AJAX iniciada en la lección 73, completando el ciclo de verificación entre el cliente (JavaScript) y el servidor (PHP).
1. Lógica del Back-end (PHP)
El controlador verificar_horario.php es el encargado de consultar la base de datos:
- Recepción de Datos: El archivo recibe la fecha seleccionada por el usuario a través de la solicitud AJAX (variable $_GET['fecha']).
- Consulta MySQL: Se establece la conexión y se ejecuta una consulta para seleccionar todos los horarios reservados (hora_reserva) que coincidan con la fecha recibida en la tabla reservas.
- Respuesta JSON: Los resultados de la consulta (las horas ocupadas) se recopilan en un array de PHP. Este array se convierte a formato JSON utilizando json_encode y se envía de vuelta al frontend.
2. Lógica del Front-end (JavaScript)
El código en el evento dateClick de FullCalendar procesa la respuesta:
- Recepción AJAX: La función de callback de AJAX recibe la cadena JSON con los horarios ocupados.
- Iteración y Ocultamiento: El código JavaScript:
- Desactiva o reinicia la visibilidad de todos los botones de horario al inicio de la verificación.
- Itera sobre el array de horarios reservados recibido por JSON.
- Para cada hora ocupada, identifica el botón de horario correspondiente en el modal (mediante su ID único).
- Oculta el botón de horario con jQuery (ej. $("#btn_horario_X").hide()) y muestra un mensaje de "No disponible" para el horario ocupado.
De esta forma, si el cliente hace clic en un día que ya tiene reservas, el modal solo mostrará los botones de los horarios que están verdaderamente disponibles, impidiendo que se generen registros duplicados.
Lecciones
🎨 Fundamentos e Interfaz Pública (Front-End con Bootstrap)
Lección 6. 06 FILAS Y COLUMNAS con Bootstrap en el SISTEMA VETERINARIO (PHP y MySql) FullStack
20 min
Lección 9. 09 CARDS con BOOTSTRAP en mi PÁGINA WEB en el SISTEMA VETERINARIO (PHP y MySql)FullStack
22 min
Lección 10. 10 Galeria de imágenes en mi PÁGINA WEB en el SISTEMA VETERINARIO (PHP y MySql)FullStack
16 min
Lección 11. 11 Sección de testimonio de clientes en el SISTEMA VETERINARIO (PHP y MySql) FullStack
8 min
🔐 Autenticación, Sesiones y Base de Datos (Back-End Core)
Lección 2. 16 LOGIN FORMULARIO en PÁGINA WEB en el SISTEMA VETERINARIO (PHP y MySql)FullStack
19 min
Lección 6. 20 Consulta SQL para lectura de USUARIOS en el SISTEMA VETERINARIO (PHP y MySql)FullStack
13 min
👤 CRUD Completo de Usuarios (Gestión de Datos)
Lección 4. 29 ZONA HORARIA para registro de datos en el SISTEMA VETERINARIO(PHP y MySql)FullStack
26 min
Lección 6. 31 Como INSTALAR mensajes con SWEETALERT2 en el SISTEMA VETERINARIO(PHP y MySql)FullStack
15 min
📦 CRUD Completo de Productos y Relaciones de Tablas
Lección 7. 44 Cargar imagen del PRODUCTO al PROYECTO en el SISTEMA VETERINARIO(PHP y MySql)FullStack
15 min
Lección 9. 46 CONSULTA SQL CON RELACIÓN DE TABLAS en el SISTEMA VETERINARIO(PHP y MySql) FullStack
12 min
Lección 10. 47 LECTURA de datos del PRODUCTO en el SISTEMA VETERINARIO(PHP y MySql) FullStack
12 min
Lección 13. 50 CONTROLADOR para DELETE el producto en el SISTEMA VETERINARIO(PHP y MySql)FullStack
9 min
🌟 Mejora de la Experiencia y Visualización de Productos
📅 Desarrollo del Módulo de Reservas con FullCalendar
Lección 6. 60 MODAL de Bootstratp en FULLCALENDAR en el SISTEMA VETERINARIO (PHP y MySql) FullStack
12 min
🔄 Lógica de Registro, Login y Reservas (Back-End Avanzado)
Lección 4. 67 Formulario de REGISTRO en FULLCALENDAR en SISTEMA VETERINARIO (PHP y MySql) FullStack
10 min
Lección 5. 68 CONTROLLER de REGISTRO en FULLCALENDAR en SISTEMA VETERINARIO (PHP y MySql) FullStack
9 min
🛡️ Seguridad, Administración de Citas y Cierre
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️