【问题标题】:need help for fullcalendar jquery需要完整日历 jquery 的帮助
【发布时间】:2012-11-21 02:13:26
【问题描述】:

我正在尝试将此完整日历添加到我的 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('#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();

    }

});

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

请帮助我。提前谢谢

【问题讨论】:

    标签: jquery jquery-ui yii fullcalendar


    【解决方案1】:

    向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);
    }
    

    在全日历中更改路径

    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()-&gt;ClientScript-&gt;registerCode('jquery.ui');吗?


    更新:

    您需要通过以下方式包含任何 js Yii::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');
    

    【讨论】:

    • 感谢您的帮助。我已经下载了所需的东西,但不知道在哪里调用 js。当我在我看来调用它时,就像我调用 calendar.js 和 fullcalendar.min.js 一样: 日历不会出现。
    • 我必须把这段代码放在哪里:Yii::app()->ClientScript->registerCode('jquery.ui'); ?
    • 感谢@Sergey 的帮助,但不幸的是,我仍然无法获得我的活动。如果我在浏览器中获取任务的 URL 是:localhost/~prg3/cpanelbee/calendar/getTasks ?
    • @dyooolicious,你写:url: '/path/todirectory/protected/views/task/json-events.php',,这是不正确的,我写下我的解决方案。如果你使用http://localhost/~prg3/cpanelbee/calendar/getTasks 很好
    • 感谢@Sergey,我终于成功了。我只需要把这个echo json_encode($data); 改成echo CJSON::encode($data); :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多