Estoy tratando de cargar algunos eventos de una base de datos MySQL en un calendario de FullCalendar. Para eso, he creado una conexión a la base de datos en un archivo PHP para obtener los datos y generarlos como JSON.
La conexión funciona bien y al ejecutar el archivo PHP en una terminal, obtengo un JSON con los datos correctos.
Pero al intentar obtener los datos a través de la API de FullCalendar, no funciona. En la consola del navegador, recibo la advertencia 'Error al analizar JSON' de FullCalendar y cuando miro la respuesta que intentó analizar, es solo el código php en sí, no su salida.
Así que copié el resultado correcto que obtuve al ejecutar el archivo PHP en una terminal normal y reemplacé el código PHP en el archivo PHP con él, y luego el análisis fue exitoso, por lo que aparentemente FullCalendar solo intenta analizar el contenido del archivo PHP en su lugar. de su salida.
¿Cuál es la razón para eso? ¿Cómo transfiero correctamente la salida del archivo PHP a la API de FullCalendar?
JavaScript en index.html:
<script> document.addEventListener('DOMContentLoaded', function() { var calendarEl = document.getElementById('calendar'); var calendar = new FullCalendar.Calendar(calendarEl, { initialDate: '2021-09-12', events: "get-events.php", }); calendar.render(); }); </script>obtener-eventos.php
<?php $servername = "127.0.0.1"; $username = "root"; $password = ""; $dbname = "database"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT Title as title, Start as start, End as end FROM event_table"; $result = mysqli_query($conn, $sql); $myArray = array(); if ($result -> num_rows > 0) { while($row = $result -> fetch_assoc()) { $myArray[] = $row; } } print json_encode($myArray); ?>La solución fue simple, no tenía nada que ver con el código PHP o JavaScript, mi entorno de servidor simplemente no estaba configurado correctamente (especialmente PHP), por lo que no se podía ejecutar el código PHP.