问题描述
<!DOCTYPE html>
<html>
<head>
<title>Laravel Fullcalender Add/Update/Delete Event Example Tutorial - Tutsmake.com</title>
<Meta name="csrf-token" content="{{ csrf_token() }}">
</head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" />
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fullcalendar@3.9.0/dist/fullcalendar.min.css" />
<script src="https://cdn.jsdelivr.net/npm/moment@2.27.0/moment.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/fullcalendar@3.9.0/dist/fullcalendar.min.js"></script>
<body>
<div class="container">
<div class="response"></div>
<div id='calendar'></div>
</div>
</body>
</html>
这里是 javascript 代码,它是一切正常的地方
<script>
$(document).ready(function() {
var SITEURL = "{{url('/')}}";
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('Meta[name="csrf-token"]').attr('content')
}
});
var calendar = $('#calendar').fullCalendar({
editable: true,events: SITEURL + "fullcalendar",displayEventTime: true,editable: true,eventRender: function(event,element,view) {
if (event.allDay === 'true') {
event.allDay = true;
} else {
event.allDay = false;
}
},selectable: true,selectHelper: true,select: function(start,end,allDay) {
var title = prompt('Event Title:');
if (title) {
var start = $.fullCalendar.formatDate(start,"Y-MM-DD HH:mm:ss");
var end = $.fullCalendar.formatDate(end,"Y-MM-DD HH:mm:ss");
$.ajax({
url: SITEURL + "/fullcalendar/create",data: 'title=' + title + '&start=' + start + '&end=' + end,type: "POST",success: function(data) {
displayMessage("Added Successfully");
}
});
calendar.fullCalendar('renderEvent',{
title: title,start: start,end: end,allDay: allDay
},true
);
}
calendar.fullCalendar('unselect');
},eventDrop: function(event,delta) {
var start = $.fullCalendar.formatDate(event.start,"Y-MM-DD HH:mm:ss");
var end = $.fullCalendar.formatDate(event.end,"Y-MM-DD HH:mm:ss");
$.ajax({
url: SITEURL + '/fullcalendar/update',data: 'title=' + event.title + '&start=' + start + '&end=' + end + '&id=' + event.id,success: function(response) {
displayMessage("Updated Successfully");
}
});
},eventClick: function(event) {
var deleteMsg = confirm("Do you really want to delete?");
if (deleteMsg) {
$.ajax({
type: "POST",url: SITEURL + '/fullcalendar/delete',data: "&id=" + event.id,success: function(response) {
if (parseInt(response) > 0) {
$('#calendar').fullCalendar('removeEvents',event.id);
displayMessage("Deleted Successfully");
}
}
});
}
}
});
});
function displayMessage(message) {
$(".response").html("<div class='success'>" + message + "</div>");
setInterval(function() {
$(".success").fadeOut();
},1000);
}
</script>
出现在我看来的问题是,当我进入页面时,日历应该已经显示了在数据库中创建和保存的事件,而这并没有发生。同样在创建新事件时,如果之后更新页面,即使它仍然在数据库中注册,它也不再出现,我该如何解决问题?
public function index()
{
if(request()->ajax())
{
$start = (!empty($_GET["start"])) ? ($_GET["start"]) : ('');
$end = (!empty($_GET["end"])) ? ($_GET["end"]) : ('');
$data = Event::whereDate('start','>=',$start)->whereDate('end','<=',$end)->get(['id','title','start','end']);
return Response::json($data);
}
return view('fullcalendar');
}
public function create(Request $request)
{
$insertArr = [ 'title' => $request->title,'start' => $request->start,'end' => $request->end
];
$event = Event::insert($insertArr);
return Response::json($event);
}
public function update(Request $request)
{
$where = array('id' => $request->id);
$updateArr = ['title' => $request->title,'end' => $request->end];
$event = Event::where($where)->update($updateArr);
return Response::json($event);
}
public function destroy(Request $request)
{
$event = Event::where('id',$request->id)->delete();
return Response::json($event);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)