需要帮助fullcalendar jquery

时间:2012-11-21 02:13:26

标签: jquery jquery-ui yii fullcalendar

我正在尝试将此fullcalendar添加到我的yii应用程序中。因为这是我的第一次,我已经尝试从http://arshaw.com/fullcalendar/docs学习教程。但是我很难理解,因为我在JQuery,JSON和其他方面都很弱。所以任何人都可以一步一步地帮助我,从数据库中添加事件需要做些什么?

这是我的json-events.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?

这是我的calendar.js:

  

的jQuery( '#日历')。fullCalendar({           eventSources:[

    // 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();

    }

});

另外要问的是,当我尝试使用数组添加事件时,它可以工作。但它不会拖延。如何让它变得可拖动?

请帮帮我。提前谢谢

1 个答案:

答案 0 :(得分:0)

protected发出请求的第一个不正当理由,您需要为输出json

创建操作 在TaskController.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);
}

更改fullcalendar中的路径

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');


更新

您需要包含任何js via Yii :: app() - &gt; clientScript-&gt; 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');