您好我正在尝试使用拖放外部事件的fullcalendar并使用yii扩展程序完整日历 - 这似乎只是一个包装器。
无效的部分(没有错误不起作用)是将外部事件拖到日历上并保留在那里。它拖了一下,但它刚回家。
阅读fullcalendar文档 - 看起来我需要提供一个回调函数来删除' drop'属性。我一直在使用外部事件示例,它是完整日历的一部分。我确实发现这个例子是使用对象名称' #calendar'并且yii正在创造名称'#yw0'但是在我更新后它仍然没有用。
我找不到办法让它发挥作用。我尝试了一种简单的警报,它可以在页面加载时调用,而不是在拖动操作之后。
所以我用View
中的函数声明了一个变量//$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
$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(),
)));
我的yii实验与JS很少相同 - 所以任何帮助都会对如何使其工作表示赞赏。
我理解在JS中你需要提供一个回调来允许drag op成功。但是当它被包裹在yii widgit中时,我需要什么样的回调?我尝试了一个PHP回调,并且只在页面加载时调用它。
我希望的结果是我可以从数据库构建外部事件列表 - 允许用户将它们拖到日历上 - 并将它们保存在数据库中。
我确实设法从日历中显示的数据库中获取数据。
由于
答案 0 :(得分:0)
Droppable拼写为两个p。所以
'dropable'=>true,
应该是
'droppable'=>true,