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:
    1. Desactiva o reinicia la visibilidad de todos los botones de horario al inicio de la verificación.
    2. Itera sobre el array de horarios reservados recibido por JSON.
    3. Para cada hora ocupada, identifica el botón de horario correspondiente en el modal (mediante su ID único).
    4. 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.