簡體   English   中英

當我嘗試顯示超過 10 個事件(有時甚至更少)時,fullcalendar.io 出現問題

[英]Trouble with fullcalendar.io when I try to display more than 10 events (sometimes even less)

我在使用 fullcalendar.io 時遇到問題,我正在嘗試在網站上顯示日歷,除非事件數量增加,否則它工作正常。 我試圖檢查數據庫中的日期是否存在某種錯誤,但這似乎很好,我找不到為什么 10 個條目有效而 100 個不會顯示的可能方法。

這是代碼:

<script>

    document.addEventListener('DOMContentLoaded', function() {
        var calendarEl = document.getElementById('calendar');

        var calendar = new FullCalendar.Calendar(calendarEl, {
            plugins: [ 'interaction', 'dayGrid', 'timeGrid', 'list' ],
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek'
            },
            editable: false,
            navLinks: true, // can click day/week names to navigate views
            eventLimit: false, // allow "more" link when too many events
            locale: 'de',
            eventRender: function(info) {
                var tooltip = new Tooltip(info.el, {
                    title: info.event.extendedProps.description,
                    placement: 'top',
                    trigger: 'hover',
                    container: 'body'
                });
            },
            events: {
                url: 'events.php',
                failure: function() {
                    document.getElementById('script-warning').style.display = 'block'
                }
            },
            loading: function(bool) {
                document.getElementById('loading').style.display =
                    bool ? 'block' : 'none';
            }
        });

        calendar.render();
    });

</script>

因此,每當“event.php”中的 SQL 被限制為一個低數字時,它就向我展示了一個完美的日歷。 但是當事件數量增加時,故障 function 被激活,它向我顯示我的錯誤消息,因為故障 function 被觸發。

有沒有辦法做一些研究為什么會發生這種情況? 我手動檢查了數據庫條目,它們看起來幾乎一樣,這里沒有問題。 在 fullcalendar 文檔中它說,沒有最大條目數。 即使有最大值,有時超過 10 個條目會導致錯誤,有時 15 個條目很酷,這很奇怪。 條目一定有問題,有沒有人知道如何檢查它們或如何從中獲取錯誤消息? 也許這有助於我繼續工作。

非常感謝

編輯:這是 events.php

header('Content-Type: application/json');
include("config.php");

$sql = "SELECT `start`, `end`, `title`, `description` FROM ".$SETTINGS["data_table"]." WHERE UNIX_TIMESTAMP(`start`) >=".strtotime($mysqli->real_escape_string($_GET['start']))." 
        AND UNIX_TIMESTAMP(`start`)<=".strtotime($mysqli->real_escape_string($_GET['end']))." LIMIT 100";
$arr = array();
if ($result = $mysqli->query($sql)) {
    $counter = 0;
    while ($row = $result->fetch_assoc()) {
        $arr[$counter]=$row;
        $counter++;
    }

    echo json_encode($arr);
} else {
    printf("Error: %s\n", $mysqli->sqlstate);
    exit;
}

In this case the mysqlli query had to be set to UTF-8, it wasn't enough to use a php header to set it to utf-8.

$mysqli = new mysqli($SETTINGS["hostname"], $SETTINGS["mysql_user"], $SETTINGS["mysql_pass"],$SETTINGS["mysql_database"]);

$mysqli->set_charset("utf8");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM