75 CONTROLLER para verificar horarios en la base de datos FULLCALENDAR en SISTEMA (PHP y MySql) FullStack

Duración: 12 min
Módulo: 🔄 Lógica de Registro, Login y Reservas (Back-End Avanzado) Lección 12 de 12

Descripción

🎬 Lección 75: Implementación del Controlador de Verificación (PHP y AJAX) 🔒

Esta lección finaliza la funcionalidad de validación de disponibilidad, asegurando que un cliente no pueda seleccionar un horario que ya está ocupado en la base de datos.

1. Recorrido y Comparación de Horarios (PHP)

Dentro del controlador PHP (verificar_horario.php), el instructor implementa la lógica para comparar los horarios del sistema con los horarios ya reservados para la fecha seleccionada:

  • Ciclo for: Se utiliza un bucle for que se ejecuta ocho veces, una por cada horario de reserva predefinido en el sistema.
  • Comparación: Dentro del ciclo, se compara el horario predefinido (ej. "8 a 9") con cada registro de hora_reserva obtenido de la base de datos para esa fecha.
  • Generación Condicional de JavaScript: Si la comparación es verdadera (es decir, el horario está ocupado), el código PHP genera dinámicamente el código JavaScript necesario para deshabilitar el botón correspondiente en el frontend.

2. Actualización Visual con JavaScript (jQuery)

El código JavaScript generado por PHP y ejecutado a través de la respuesta AJAX se encarga de modificar el botón de horario en el modal de reserva:

  • Selección por ID: Se utiliza jQuery ($) para seleccionar el botón específico por su ID (e.g., #btn_horario_1), ya que los ID de los botones son correlativos y se mapean en el bucle. -
  • Deshabilitar Botón: Se añade el atributo disabled con el valor true al botón para que el usuario no pueda seleccionarlo. -
  • Cambio de Color: Para una mejor retroalimentación visual, se usa CSS para cambiar el color de fondo del botón a rojo (background-color: Red;). -

3. Resultado Final

Con esta implementación, el sistema garantiza:

  • Al hacer clic en un día, los horarios que ya tienen una reserva se muestran en rojo y están deshabilitados, impidiendo la doble reserva. -
  • Los horarios disponibles aparecen con normalidad, listos para ser seleccionados.

El instructor menciona un pequeño detalle pendiente de resolver en el próximo video, relacionado con la actualización inmediata del estado de los botones después de registrar una nueva reserva sin recargar la página.