Чтобы исправить проблему с парсингом, мне пришлось добавить tooltip.js и popper.js (моя тупая голова забыла это сделать)
Моя проблема сейчас в том, что он рендерит события, но подсказка по-прежнему не отображается при наведении или щелчке.
В настоящее время я пытаюсь заставить всплывающие подсказки работать с FullCalendar, но все примеры, которые я нашел о том, как это сделать (включая официальную документацию), не помогли мне сделать это.
Каждый раз, когда я загружаю страницу, она возвращает:
Сбой при разборе JSON
Но открытие моего php-файла, который передает его с помощью JSON, возвращает правильный json.
Ниже приведен код на странице моего календаря для рендеринга календаря, если я возьму eventRender, он работает нормально.
document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
plugins: [ 'dayGrid' ],
defaultView: 'dayGridMonth',
eventRender: function(info) {
var tooltip = new Tooltip(info.el, {
title: info.event.extendedProps.description,
placement: 'top',
trigger: 'hover',
container: 'body'
});
},
eventSources: [
{
url: 'json-events-feed.php',
type: 'POST' // Send post data
}
]
});
calendar.render();
});
Мой файл json-events-feed.php выглядит так:
<?php
require( "config.php" );
try {
$data = array();
$data = Event::getList();
$result_calendar['event'] = $data['results'];
$result_calendar['totalRows'] = $data['totalRows'];
$events = array();
// Fetch results
foreach ($result_calendar['event'] as $event) {
$e = array();
$e['id'] = $event->calendarDateID;
$e['title'] = $event->title;
$e['start'] = date( "Y-m-d", $event->eventDate );
$e['end'] = date( "Y-m-d", $event->eventDate );
$e['allDay'] = true;
$e['description'] = "Testando essa bagaca";
// Merge the event array into the return array
array_push($events, $e);
}
// Output json for our calendar
echo json_encode($events);
exit();
} catch (PDOException $e){
echo $e->getMessage();
}
?>