TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码

FullCalendar3中PHP多事件数据传递教程

2025-11-14
/
0 评论
/
1 阅读
/
正在检测是否收录...
11/14

前端日历初始化与 AJAX 数据请求

在前端 HTML 页面中,引入必要的库文件并创建一个容器用于挂载日历:

html

接下来,在 $(document).ready() 中初始化 FullCalendar,并通过 events 属性指定一个 PHP 接口地址,用于获取事件数据:

javascript $('#calendar').fullCalendar({ header: { left: 'prev,next today', center: 'title', right: 'month,agendaWeek,agendaDay' }, editable: false, eventLimit: true, events: 'get_events.php' });

这里的 get_events.php 就是我们接下来要编写的后端接口,它负责查询数据库并将结果以 JSON 格式返回给前端。

后端处理:PHP 动态生成事件数据

创建 get_events.php 文件,连接数据库并根据前端传入的时间范围筛选事件。FullCalendar 会自动在请求时附带 startend 参数(Unix 时间戳),我们可以利用它们优化查询性能:

php
<?php
header('Content-Type: application/json');

$host = 'localhost';
$db = 'yourdbname';
$user = 'yourusername'; $pass = 'yourpassword';

try {
$pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $user, $pass);
} catch (PDOException $e) {
die("数据库连接失败: " . $e->getMessage());
}

$start = $GET['start'] ? date('Y-m-d H:i:s', $GET['start']) : date('Y-m-d');
$end = $GET['end'] ? date('Y-m-d H:i:s', $GET['end']) : date('Y-m-d', strtotime('+1 month'));

$sql = "SELECT id, title, start, end, description, color FROM events
WHERE start BETWEEN ? AND ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$start, $end]);

$events = [];
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$events[] = [
'id' => $row['id'],
'title' => $row['title'],
'start' => $row['start'],
'end' => $row['end'],
'description' => $row['description'],
'color' => $row['color'] ?: '#3a87ad'
];
}

echo json_encode($events);
?>

这样,每当用户切换视图或翻页时,日历都会自动向该接口发起请求,获取对应时间段内的事件数据,并以彩色区块形式渲染出来。

数据扩展与交互优化

为了提升用户体验,你可以在事件点击时弹出详细信息。通过 FullCalendar 的 eventClick 回调函数实现:

javascript eventClick: function(calEvent) { alert('事件:' + calEvent.title + '\n描述:' + calEvent.description); }

此外,若需支持拖拽或修改事件,只需将 editable: true 并监听相应事件,配合额外的 PHP 接口完成数据更新。

整个流程清晰且高效,前后端分离明确,适合中小型项目的快速集成。只要理解了数据流向与格式规范,即可灵活扩展更多业务逻辑。

朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/38600/(转载时请注明本文出处及文章链接)

评论 (0)

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. 强强强
    2025-04-07
  2. jesse
    2025-01-16
  3. sowxkkxwwk
    2024-11-20
  4. zpzscldkea
    2024-11-20
  5. bruvoaaiju
    2024-11-14

标签云