我正在尝试使用select选项使用完整日历-Philippfrenzel创建一个带有选定日期的模态事件-Philippfrenzel,但我不知道如何。我已经有一个事件Click wich有效,但这不是我真正想要的。
**Controller:**
public function actionRequisitar(){
$searchModel= new RequisicaoSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$events = [];
foreach(Requisicao::find()->all() as $requisicao){
$event = new \yii2fullcalendar\models\Event();
$event->id = $requisicao->id;
$event->title = $requisicao->motivo_requisicao;
$event->start = $requisicao->data_inicio_req;
$events[] = $event;
}
return $this->render('requisitar',[
'events'=>$events,
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
public function actionCreate()
{
$model = new Requisicao();
//$model->data_inicio_req=$date;
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id, 'utilizador_id' => $model->utilizador_id, 'sala_id' => $model->sala_id]);
}
return $this->renderAjax('create', [
'model' => $model,
]);
}
**Index:**
<?= \yii2fullcalendar\yii2fullcalendar::widget(array(
'events' => $events,
'id' => 'calendar',
));
?>
**Main.js**
$(function () {
$('#modalButton').click(function () {
$('#modal').modal('show')
.find('#modalContent')
.load($(this).attr('value'));
});
$(document).on('click', '.fc-day', function () {
var date = $(this).attr('data-date');
$.get('index.php?r=requisicao/create', {'date': date}, function (data) {
$('#modal').modal('show')
.find('#modalContent')
.load(data);
});
});
});
谢谢您的时间。
在设置完整日历小部件的索引配置中:
<?= \yii2fullcalendar\yii2fullcalendar::widget(array(
'events' => $events,
'id' => 'calendar',
));
?>
您必须添加属性 eventClick
,一旦单击事件,该函数将触发JS函数。
您可以这样操作:
<?= \yii2fullcalendar\yii2fullcalendar::widget(array(
'events' => $events,
'id' => 'calendar',
'eventClick' => new JsExpression('(event) => handleClick(event)'),
));
?>
注意handleClick必须是在javascript中声明的真实函数,可以在创建函数之前将handleClick(event)
更改为console.log(event)
以检查其是否按预期工作。