66 Cargar datos de los horario con AJAX para la Atención de Doctores con LARAVEL(PHP-MySql)FullStack
Duración: 10 minDescripción
📊🔄 Lección 66: Carga Completa de Datos de Horarios Filtrados con AJAX (Laravel)
Esta lección finaliza la implementación de AJAX, asegurando que el controlador de Laravel devuelva la vista del calendario filtrada por el consultorio seleccionado, logrando la funcionalidad dinámica sin refrescar la página.
🎯 1. Objetivo y Consulta a la Base de Datos
El objetivo es modificar la función cargarDatosConsultorios en el controlador para que, en lugar de retornar solo el ID, ejecute una consulta filtrada y retorne la estructura completa del calendario.
Consulta Filtrada (Eloquent): Se utiliza el modelo Horario y la cláusula where para consultar la base de datos, obteniendo solo los horarios que coincidan con el $id del consultorio recibido por el parámetro AJAX [02:25].
PHP
$horarios = Horario::where('consultorio_id', $id)->get();
- Verificación: Una prueba inicial mostrando el array $horarios confirma que la consulta funciona correctamente, devolviendo los datos específicos del consultorio 1 o 2 [03:32].
🖥️ 2. Retorno de la Vista Filtrada
Para que el frontend pueda renderizar el calendario, se debe retornar HTML, no solo datos. Esto se logra creando una vista parcial.
- Creación de la Vista Parcial: Se crea una nueva vista (admin.horarios.ajax-data-horarios.blade.php) cuyo único propósito es contener el código HTML del calendario [04:54].
- Envío de la Vista: En el controlador, se usa return view() para renderizar esta nueva vista y se le pasa la variable $horarios con los datos filtrados a través de compact() [05:17].
- Migración del Código del Calendario: La lógica de la tabla del calendario (incluyendo los bucles @foreach de horas y días) se mueve por completo desde la vista principal (index.blade.php) a esta nueva vista parcial [08:14].
🚀 3. Resultado Dinámico y Beneficios
El sistema ahora está completamente integrado, proporcionando una experiencia de usuario fluida.
- Actualización Instantánea: Al seleccionar un consultorio en el select, la función AJAX captura el ID, consulta la base de datos, el controlador genera el HTML del calendario filtrado, y jQuery inyecta ese HTML en el div (consultorio_info), todo sin recargar la página [08:45].
- Filtrado Correcto: El calendario ahora muestra correctamente solo los horarios asignados al consultorio seleccionado, resolviendo el error de validación anterior y ofreciendo una visualización clara [09:24].
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️