0

我在这里看到了很多关于 fullcalendar 的帖子,但没有一个能解决我的问题。我正在尝试从外部 php 文件(JSON 提要)加载事件。事件不会在日历中呈现。

所以这是我的javascript代码:

<script>
    $(document).ready(function() {

        var calendar = $('#calendar').fullCalendar({
            defaultView: 'agendaWeek',
            allDaySlot: false,
            minTime: 8,
            maxTime: 17,
            defaultEventMinutes: 30,
            weekends: false,
            selectable: true,
            selectHelper: true,
            select: function(start, end, allDay) {
                if (confirm("Voulez-vous réserver cette période?")) {

                    $('#idMedecin').val('<?php echo $_SESSION["idMedecin"]; ?>');
                    $('#idPatient').val('<?php echo $patient->numero; ?>');
                    $('#eventS').val(start);
                    $('#eventE').val(end);

                    $('#calendarForm').submit();

                }
            },
            events: {
                url: 'calendrier-feed.php',
                type: 'POST',
                data: {
                    idMedecin: '<?php echo $_SESSION["idMedecin"]; ?>'
                },
                error: function() {
                    alert('there was an error while fetching events!');
                }
            }

        });

    });
</script>

<div id="calendar">

</div>

这就是我的 calendar-feed.php 中的内容:

获取所有事件($doc);

foreach($liste 作为 $event) {

    $event_arr = 数组();
    $event_arr['id'] = $event->id;
    $event_arr['title'] = $event->患者;
    $event_arr['start'] = $event->start;
    $event_arr['end'] = $event->end;

    array_push($return_arr, $event_arr);

}

回声 json_encode($return_arr);

?>

JSON 输出如下所示:

[{"id":"22","title":"ASDC 1234 5434","start":"Mon Jul 15 2013 08:00:00 GMT-0400 (Est (heure d\u2019\u00e9t\u00e9)) ","end":"2013 年 7 月 15 日星期一 08:30:00 GMT-0400 (Est (heure d\u2019\u00e9t\u00e9))"},{"id":"23","title":"ASDC 1234 5434","start":"2013 年 7 月 15 日星期一 09:00:00 GMT-0400 (Est (heure d\u2019\u00e9t\u00e9))","end":"2013 年 7 月 15 日星期一 09:30:00 GMT-0400 (Est (heure d\u2019\u00e9t\u00e9))"}]

我完全一无所知。请帮忙。

谢谢

4

3 回答 3

1

问题在于date结构和"allDay":false

我这样用过

[{"id":"106","title":"106","start":"2013-07-17T11:00:00+02:00","end":"2013-07-18T14:00:00+02:00","allDay":false,"backgroundColor":"#FF0000"},{"id":"107","title":"107","start":"2013-07-19T10:45:00+02:00","end":"2013-07-20T14:15:00+02:00","allDay":false,"backgroundColor":"#FF0000"},{"id":"108","title":"108","start":"2013-07-22T10:45:00+02:00","end":"2013-07-22T14:15:00+02:00","allDay":false,"backgroundColor":"#FF0000"},{"id":"109","title":"109","start":"2013-07-22T10:45:00+02:00","end":"2013-07-22T14:15:00+02:00","allDay":false,"backgroundColor":"#D7DF01"}]
于 2013-07-19T11:27:29.083 回答
0

找到了解决办法。我必须将此添加到我的 calendar-feed.php 中:

$event_arr['allDay'] = false;

即使它在 fullCalendar API 中是“可选的”,我仍然必须包含它。

我首先认为日期是问题,但它没有任何意义,因为我从字符串中的 select 事件中捕获日期并将其填充到 mysql 中的 varchar 中。

无论如何,问题解决了:)

于 2013-07-17T01:27:49.163 回答
0

我也使用过这个插件,我们之间的区别在于日期的结构:

[{"id":"190","allDay":false,"editable":true,"title":"Sam Shift","start":"2013-07-14 18:00:00","duration":"8","end":"2013-07-15 02:00:00","color":"#00f"}]

您可以查看我的日期比您的简单得多,尝试修复它并检查。

于 2013-07-16T11:56:26.627 回答