我正在尝试使用fullcalendar(https://github.com/philippfrenzel/yii2fullcalendar)立即保存选择其数据来自下拉列表的事件。
因此,我需要从下拉列表中获取数据,以便在点击时保存数据并显示保存的所有数据。
为此,我首先尝试在dayclick“正常”保存事件,并提示事件标题。
但它不起作用:提示来了(警报也是如此)但我的日历上没有保存任何内容。
我已经搜索了doc(fullcalendar.io/docs/mouse/dayClick/)和演示(github.com/philippfrenzel/yii2fullcalendar-demo/blob/master/views/site/index.php)dut我找不到有用的东西。
我的事情我不明白,但我不知道是什么......
这是我的观点(index.php):
<?php
use yii\helpers\Html;
use yii\helpers\Url;
use yii\helpers\ArrayHelper;
use yii\helpers\Json;
use app\models\FeuilleDeJourResponsable;
use yii\web\JsExpression;
?>
<div class="site-index">
<?php
$JSDayClick = <<<EOF
function(start,end) {
var title = prompt('Event Title:');
var eventData;
if (title) {
eventData = {
title: title,
start: start,
end: end
};
$('#w0').fullCalendar('renderEvent', eventData, true);
}
$('#w0').fullCalendar('unselect');
}
EOF;
?>
<?= yii2fullcalendar\yii2fullcalendar::widget([
'id' => 'calendar',
'clientOptions' => [
// 'language' => 'fa',
//'eventLimit' => TRUE,
'selectable' => true,
'selectHelper' => true,
'droppable' => true,
'editable' => true,
// 'theme'=>true,
'fixedWeekCount' => false,
'defaultDate' => date('Y-m-d'),
'dayClick'=>new \yii\web\JsExpression($JSDayClick)
],
'ajaxEvents' => Url::to(['/site/jsoncalendar']),
]);
?>
<?= Html::encode($JSDayClick); ?>
</div>
对于我的控制器(SiteController.php),我尝试了所有我能找到的(www.yiiframework.com/extension/yii2fullcalendar/)和(github.com/philippfrenzel/yii2fullcalendar-demo/blob/master/controllers) /SiteController.php)
有人可以帮助我吗?
谢谢你, 萨拉
编辑:
我找到适用于我的第一步的东西:
$JSDayClick = <<<EOF
function(date) {
var title = prompt('Event Title:');
var eventData;
alert(date.format());
if (title) {
eventData = {
title: title,
start: date.format(),
};
$('#calendar').fullCalendar('renderEvent', eventData, true);
alert(eventData.title);
alert(eventData.start);
}
$('#calendar').fullCalendar('unselect');
}
EOF;
我只需更改“$('#calendar')。fullCalendar”,其中包含ID“'id'=&gt;'calendar',”。
但对于nextstep,我需要了解如何将事件保存在我创建的其他模型上(feuille de jour)。
我一直在寻找,但我没有任何想法......
再次感谢你, 萨拉
答案 0 :(得分:0)
未经测试。
$JSDayClick = <<<EOF
//dayClick: function (date, allDay, jsEvent, view) {
function (date, allDay, jsEvent, view) {
var titleNew = prompt('Event Title:'); var thedate1 = formatDate(date);
$.ajax({
url: Url::to(['/site/day-click-calendar-event']),
dataType: 'json',
data: {
title: titleNew,
start: thedate1,
end: thedate1
},
success: function (data, response, event, date) {
//alert("success here");
$('#calendar').fullCalendar('renderEvent',
{
title: titleNew,
start: thedate1,
end: thedate1
}, true);
},
error: function () {
alert("Oops! Something didn't work");
}
});
},
在站点控制器中:
public actionDayClickCalendarEvent()
{
//save date
}