我正在尝试将此完整日历添加到我的 yii 应用程序中。 由于这是我第一次,我已经尝试从 http://arshaw.com/fullcalendar/docs 学习教程。 但是我很难理解,因为我在JQuery,JSON和其他方面很弱。 所以任何人都可以一步一步地帮助我,我需要做什么才能从我的数据库添加事件?
这是我的 JSON 事件.php:
<?php
$query = Yii::app()->db->createCommand('SELECT TASKID, STARTTIME, ENDTIME
FROM task');
$result = $query->queryAll();
foreach ($result as $row) {
$data[] = array(
'id' => $row['TASKID'],
'start' => $row['STARTTIME'],
'end' => $row['ENDTIME'],
'allDay' => false,
'editable' => true,
);
}
echo json_encode($data);
这是正确的还是不正确的?我应该把这个PHP放在什么目录中?
这是我的日历.js:
jQuery('#calendar').fullCalendar({ 事件来源: [
// your event source { url: '/path/todirectory/protected/views/task/json-events.php', backgroundColor: '#3D8BFF', textColor: '#7AE4FF' } ], header: { left: 'prev,next today', center: 'title', right: 'month,agendaWeek,agendaDay' }, editable: true, droppable: true, drop: function(date, allDay) { var originalEventObject = jQuery(this).data('eventObject'); var copiedEventObject = jQuery.extend({}, originalEventObject); copiedEventObject.start = date; copiedEventObject.allDay = allDay; jQuery('#calendar').fullCalendar('renderEvent', copiedEventObject, true); jQuery(this).remove(); } });
另一件事要问,当我尝试使用数组添加事件时,它可以工作。 但它是不可拖动的。 如何使其可拖动?
请帮助我。 提前感谢
向protected
发出请求的第一个不好的理由,需要为输出json创建动作
在任务控制器中.php
public function actionGetTasks()
{
$query = Yii::app()->db->createCommand('SELECT TASKID, STARTTIME, ENDTIME
FROM task');
$result = $query->queryAll();
foreach ($result as $row) {
$data[] = array(
'id' => $row['TASKID'],
'start' => $row['STARTTIME'],
'end' => $row['ENDTIME'],
'allDay' => false,
'editable' => true,
);
}
echo json_encode($data);
}
在全日历中更改路径
jQuery('#calendar').fullCalendar({ eventSources: [
// your event source
{
url: '/path/todirectory/index.php?r=task/getTasks',
对于可拖动的要求,请阅读以下内容:http://arshaw.com/fullcalendar/docs/event_ui/Requirements/
你添加Yii::app()->ClientScript->registerCode('jquery.ui');
吗?
更新:
您需要通过以下方式包含任何 jsYii::app()->clientScript->registerScriptFile,
在你包括 js 的地方,你还需要在之前添加:(它可能在/views/layout/main.php)
Yii::app()->ClientScript->registerCode('jquery.ui');
Yii::app()->ClientScript->registerScriptFile(Yii::app()->baseUrl . '/js/plugins/fullcalendar.min.js');
Yii::app()->ClientScript->registerScriptFile(Yii::app()->baseUrl . '/js/custom/calendar.js');