关于 fullcalendar:yii efullcalendar 小部件和外部事件拖放不起作用

yii efullcalendar widget and external events drag and drop not working

您好,我正在尝试对 fullcalendar 使用拖放外部事件并开始使用 yii 扩展完整日历 - 这似乎只是一个package器。

不工作的部分(没有错误只是不工作)是将外部事件拖到日历上并停留在那里。它拖了过去,但它只是回到家。

阅读完整日历文档 - 看起来我需要为 \\'drop\\' 属性提供回调函数。我一直在使用作为完整日历一部分的外部事件示例。我确实发现该示例使用了对象名称 \\'#calendar\\' 并且 yii 正在创建名称 \\'#yw0\\' 但在我更新后它仍然无法正常工作。

我找不到让它工作的方法。我尝试了一个简单的警报,它在页面加载时调用 - 而不是在拖动操作之后调用。

所以我在 View

中用函数声明了一个变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//$dropcallback=new CJavaScriptExpression("alert('hi')");
$dropcallback=new CJavaScriptExpression(
    "function(date, allDay) {
        var originalEventObject = $(this).data('eventObject');
        var copiedEventObject = $.extend({}, originalEventObject);
        copiedEventObject.start = date;
        copiedEventObject.allDay = allDay;
        $('#yw0').fullCalendar('renderEvent', copiedEventObject, true);
        if ($('#drop-remove').is(':checked')) {
           // if so, remove the element from the Draggable Events list
           $(this).remove();
        }
     }
 ");

然后我像这样创建widgit

1
2
3
4
5
6
7
8
9
10
11
12
13
$this->widget('ext.EFullCalendar.EFullCalendar', array(
'themeCssFile'=>'cupertino/jquery-ui.min.css',
'options'=>array(
    'header'=>array(
        'left'=>'prev,next',
        'center'=>'title',
        'right'=>'today'
    ),
    'editable'=>true,
    'dropable'=>true,
    'drop'=>$dropcallback,
    'events'=>Game::model()->gameCalendarData(),
)));

我对 JS 的 yii 体验很少而且相同 - 因此,对于如何使其工作的任何帮助表示赞赏。

我了解在 JS 中您需要提供回调以允许拖动操作成功。但是当它被包裹在一个 yii widgit 中时,我需要什么样的回调呢?我尝试了一个 PHP 回调,它只在页面加载时被调用。

我希望的结果是我可以从数据库构建外部事件列表 - 允许用户将它们拖到日历上 - 并将它们保存在数据库中。

我确实设法从日历中显示的数据库中获取数据。

谢谢


Droppable 用两个 p 拼写。所以

1
'dropable'=>true,

应该是

1
'droppable'=>true,