FullCalendar возвращает «Сбой анализа JSON» при попытке добавить всплывающую подсказку - PullRequest
2 голосов
/ 05 мая 2019

Чтобы исправить проблему с парсингом, мне пришлось добавить 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();
}

?>

1 Ответ

1 голос
/ 05 мая 2019

Чтобы исправить проблему парсинга, мне пришлось добавить tooltip.js и popper.js (моя тупая голова забыла это сделать)

Теперь, для проблемы рендеринга, я обнаружил, что элемент cssне получилось, его непрозрачность увеличилась как таковая, он сделал визуализацию, я просто не мог этого увидеть.Все, что я сделал, так это установил тег:

...