我正在考虑使用FullCalendar作为网站上的事件日历。
我的问题:是否有使用PHP/MySQL存储访问事件数据的文档或示例?
谢谢!
我也在这样做,我希望有一个更完整的PHP/MySQL的例子,因为我通常是一个ASP。NET/MS-SQL的家伙,所以我不得不花更多的时间在一些基本的东西上。这是我所做的概述。这是非常基本的。
首先,我在MySQL中创建了一个表,如下所示:CREATE TABLE `events` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(200) NOT NULL,
`start_date` datetime NOT NULL,
`end_date` datetime NOT NULL,
`event_url` varchar(200) DEFAULT NULL,
`all_day` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
然后,我编写了一个名为json-events.php的PHP程序,我将其用作日历的事件源。在这个程序中,首先需要获取当前显示的日历的开始和结束日期:
$start_date = $_GET['start'];
$end_date = $_GET['end'];
然后,您需要运行SQL查询来获取该窗口中的事件:
$sqlcommand = "select * from events
where start_date between from_unixtime($start_date) and from_unixtime($end_date)
or end_date between from_unixtime($start_date) and from_unixtime($end_date)
order by start_date";
然后,将结果放到一个数组中:
$event_array = array();
while ($record = mysql_fetch_array($result)) {
$event_array[] = array(
'id' => $record['id'],
'title' => $record['title'],
'start' => $record['start_date'],
'end' => $record['end_date'],
'url' => $record['event_url'],
'allDay' => $record['all_day']
);
}
最后,JSON对其进行编码并回显:
echo json_encode($event_array);
这似乎有效。我不太熟悉MySQL和PHP中处理日期/时间字段的方式,所以我不确定我是否以最有效的方式这样做。
您需要实现一个PHP页面,该页面从MySQL数据库检索事件数据并以JSON格式返回。然后,您将使用该URL作为日历的JSON提要源。
在FullCalendar GitHub存储库中有示例代码。
还有一个演示,演示如何在日历发生变化时侦听事件