分享日历拖动与数据保存

首先是载入jQuery库,jQuery ui,ullcalendar及弹出层fancybox。
[img]http://www.sucaihuo.com/jquery/demo/107/images/demo.jpg[/img]
<script src='js/jquery.js'></script>  
<script src=js/jquery-ui.js'></script>
<script src='js/fullcalendar.min.js'></script>
<script src='js/jquery.fancybox-1.3.1.pack.js'></script>

<div id="calendar"></div>

FullCalendar提供了可拖动日程事件的方法,但必须依赖jquery ui的draggable插件。当拖动完毕后,eventDrop回调函数中,我们使用post方式向后台php发送ajax请求,请求的参数包括id:当前拖动事件的id唯一标识,daydiff:拖动前后的天数变更(天数偏移量),minudiff:拖动前后分钟变更(分钟偏移量),allday:是否为全天事件。然后接收后台php处理的结果,如果返回的不是1(拖动处理失败),就弹出提示信息,并且将日程事件恢复到拖动前的状态,请看代码:
$(function() {  
events: 'json.php', //事件数据源
editable: true, //允许拖动
dragOpacity: {//设置拖动时事件的透明度
agenda: .5,
'':.6
},
//拖动事件
eventDrop: function(event,dayDelta,minuteDelta,allDay,revertFunc) {
$.post("ajax.php?action=drag",{id:event.id,daydiff:dayDelta,
minudiff:minuteDelta,allday:allDay},function(msg){
if(msg!=1){
alert(msg);
revertFunc(); //恢复原状
}
});
}
});

[b]日历拖动演示[/b]:[url]http://www.sucaihuo.com/js/107.html[/url]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用PHP和MySQL以及FullCalendar插件实现日历拖动数据保存时,首先需要确保已经正确安装了PHP和MySQL,并成功引入了FullCalendar插件。 为了让日历具备拖动功能,需要在FullCalendar的配置中设置"editable"属性为true。例如: ``` $('#calendar').fullCalendar({ editable: true, // 其他配置项 }); ``` 接着,在服务器端通过PHP来处理日历事件的拖动操作。当拖动日历事件后,FullCalendar会向服务器发送一个包含被拖动事件新的日期和时间的POST请求,我们需要在PHP中接收并处理这个请求。 首先,我们创建一个PHP脚本来处理这个请求。例如,我们假设这个脚本叫做"update_event.php": ```php <?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { $event_id = $_POST['event_id']; $new_start_date = $_POST['new_start_date']; $new_end_date = $_POST['new_end_date']; // 在这里更新数据库中对应的事件的起止日期 // ... echo json_encode(['status' => 'success']); } else { echo json_encode(['status' => 'error']); } ?> ``` 然后,在FullCalendar的配置中,我们需要设置一个事件回调函数来处理事件的更新。例如: ```javascript $('#calendar').fullCalendar({ // 其他配置项 eventDrop: function(event, delta, revertFunc) { $.ajax({ url: 'update_event.php', type: 'POST', data: { event_id: event.id, new_start_date: event.start.format(), new_end_date: event.end.format() }, success: function(response) { console.log('Event updated successfully.'); }, error: function() { revertFunc(); // 如果更新失败,则恢复事件的原始位置 console.log('Error updating event.'); } }); } }); ``` 这样,当用户拖动日历中的事件时,FullCalendar会自动发送一个AJAX请求到"update_event.php"脚本,该脚本会接收并处理这个请求,然后更新数据库中对应事件的起止日期。 以上就是使用PHP、MySQL和FullCalendar实现日历拖动数据保存的基本步骤。根据具体需求,你可能还需要在数据库中创建对应的表格来存储日历事件,并在PHP脚本中实现事件的查询、插入和删除等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值