日历问题,不加载数据库中已经存在的事件

问题描述

我有一个有效的日历,插入新事件,更新良好,也删除事件

<!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 (将#修改为@)