FullCalendar 6:FullCalendarアプリケーション-ドラッグとリアルタイム保存
4586 ワード
FullCalendarを使用して、非常に強力なカレンダープログラムを構築することができます.ユーザーは、新規作成、変更、削除などのFullCalendar操作スケジュール、および本明細書で説明するドラッグ、スケジュールイベントのスケールを簡単に行うことができます.
デモンストレーションDEMOダウンロードソースの表示
HTML
私たちはスケジュールページをdragと名付けました.htmlは、まずjQueryライブラリ、jQuery ui、fullcalendarプラグインをロードします.
にbodyで、カレンダーコンテナdiv#calendarを します.
jQuery
FullCalendarはスケジュールイベントをドラッグする を していますが、jquery uiのdraggableプラグインに する があります.ドラッグが するとeventDropコールバック ではpost でajaxリクエストをバックグラウンドphpに し、 されたパラメータにはid: のドラッグイベントのid 、daydiff:ドラッグ の ( オフセット)、minudiff:ドラッグ ( オフセット)、allday: イベントかどうかが まれます.その 、バックグラウンドphp の を し、1(ドラッグ に した)でない 、プロンプトメッセージがポップアップされ、スケジュールイベントがドラッグ の に ります.コードを してください.
PHP
ドラッグが するとFullCalendarはバックグラウンドdo.phpはajaxリクエストを しました. と じですdo.phpはaction パラメータを し、まずpostからの を し、データテーブルの するスケジュールイベント を し、 イベントであるかどうかと があるかどうかの2つの に づいて なるSQL を し、 にデータテーブルを し、 を します.コードを てください.
のコードは、スケジュールイベントの と イベントを することが です.これにより、スケジュールイベント を にドラッグしてリアルタイムで できるようになります.demoを てみると、かっこいいのではないでしょうか.
まとめ
スケジュールイベントのスケールについて
スケールとは、イベントが1 2 になり、10:00に した が9:30になり、カレンダービューで するスケジュールイベント を ( ビュー)または ( ビューおよび ビュー)に ばしたり したりするだけで、カレンダービューでスケジュールイベントを および することができます.FullCalendarが するeventResizeメソッドを して にできます.
の について
FullCalendarはselectメソッドを しており、ユーザーは のスケジュールを するときに、 に した を し、ポップアップされた スケジュールで と を に することができます.この は を してマウスを までドラッグし、 ボタンを すだけで、 くdemoで しましょう.
マルチユーザ について
FullCalendarをプロジェクトに するには、CRMシステムで のユーザーがスケジュールを しているなど、 くのユーザーに されるのが です. は のスケジュールや の を することができます. ユーザーは のスケジュールを することはできません.これらのニーズはプロジェクト の に まります.もちろん、データベースの は です.ここでは く しません.
なことに、カレンダーには の がありません.どの が の をFullCalendarに することができて、FullCalendarの での に した をします.
の の
FullCalendarシリーズでは、FullCalendarの アプリケーション、APIドキュメント、データベースの み り、 、 、 、ドラッグ、スケール、 について しています.Hellowebaご ありがとうございます.
hellowebaに するcom』FullCalendarアプリケーション-ドラッグとリアルタイム
デモンストレーションDEMOダウンロードソースの表示
HTML
私たちはスケジュールページをdragと名付けました.htmlは、まずjQueryライブラリ、jQuery ui、fullcalendarプラグインをロードします.
にbodyで、カレンダーコンテナdiv#calendarを します.
jQuery
FullCalendarはスケジュールイベントをドラッグする を していますが、jquery uiのdraggableプラグインに する があります.ドラッグが するとeventDropコールバック ではpost でajaxリクエストをバックグラウンドphpに し、 されたパラメータには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("do.php?action=drag",{id:event.id,daydiff:dayDelta,
minudiff:minuteDelta,allday:allDay},function(msg){
if(msg!=1){
alert(msg);
revertFunc(); //
}
});
}
});
PHP
ドラッグが するとFullCalendarはバックグラウンドdo.phpはajaxリクエストを しました. と じですdo.phpはaction パラメータを し、まずpostからの を し、データテーブルの するスケジュールイベント を し、 イベントであるかどうかと があるかどうかの2つの に づいて なるSQL を し、 にデータテーブルを し、 を します.コードを てください.
...
}elseif($action=="drag"){//
$id = $_POST['id'];
$daydiff = (int)$_POST['daydiff']*24*60*60;
$minudiff = (int)$_POST['minudiff']*60;
$allday = $_POST['allday'];
$query = mysql_query("select * from `calendar` where id='$id'");
$row = mysql_fetch_array($query);
if($allday=="true"){//
if($row['endtime']==0){
$sql = "update `calendar` set starttime=starttime+'$daydiff' where id='$id'";
}else{
$sql = "update `calendar` set starttime=starttime+'$daydiff',endtime=endtime
+'$daydiff' where id='$id'";
}
}else{
$difftime = $daydiff + $minudiff;
if($row['endtime']==0){
$sql = "update `calendar` set starttime=starttime+'$difftime' where id='$id'";
}else{
$sql = "update `calendar` set starttime=starttime+'$difftime',endtime=endtime
+'$difftime' where id='$id'";
}
}
$result = mysql_query($sql);
if(mysql_affected_rows()==1){
echo '1';
}else{
echo ' !';
}
}
のコードは、スケジュールイベントの と イベントを することが です.これにより、スケジュールイベント を にドラッグしてリアルタイムで できるようになります.demoを てみると、かっこいいのではないでしょうか.
まとめ
スケジュールイベントのスケールについて
スケールとは、イベントが1 2 になり、10:00に した が9:30になり、カレンダービューで するスケジュールイベント を ( ビュー)または ( ビューおよび ビュー)に ばしたり したりするだけで、カレンダービューでスケジュールイベントを および することができます.FullCalendarが するeventResizeメソッドを して にできます.
eventResize: function(event,dayDelta,minuteDelta,revertFunc) {
$.post("do.php?action=resize",{id:event.id,daydiff:dayDelta,minudiff:minuteDelta},function(msg){
if(msg!=1){
alert(msg);
revertFunc();
}
});
}
の について
FullCalendarはselectメソッドを しており、ユーザーは のスケジュールを するときに、 に した を し、ポップアップされた スケジュールで と を に することができます.この は を してマウスを までドラッグし、 ボタンを すだけで、 くdemoで しましょう.
selectable: true, //
select: function( startDate, endDate, allDay, jsEvent, view ){
var start =$.fullCalendar.formatDate(startDate,'yyyy-MM-dd');
var end =$.fullCalendar.formatDate(endDate,'yyyy-MM-dd');
$.fancybox({
'type':'ajax',
'href':'event.php?action=add&date='+start+'&end='+end
});
}
マルチユーザ について
FullCalendarをプロジェクトに するには、CRMシステムで のユーザーがスケジュールを しているなど、 くのユーザーに されるのが です. は のスケジュールや の を することができます. ユーザーは のスケジュールを することはできません.これらのニーズはプロジェクト の に まります.もちろん、データベースの は です.ここでは く しません.
なことに、カレンダーには の がありません.どの が の をFullCalendarに することができて、FullCalendarの での に した をします.
の の
FullCalendarシリーズでは、FullCalendarの アプリケーション、APIドキュメント、データベースの み り、 、 、 、ドラッグ、スケール、 について しています.Hellowebaご ありがとうございます.
hellowebaに するcom』FullCalendarアプリケーション-ドラッグとリアルタイム