使用 codeigniter 在 Fullcalendar 中获取事件?

Fecting event in Full Calender using codeigniter?

我使用 ajax 成功地从数据库存储和检索事件,现在如何在 fullcalnder 中将其显示到事件中? 在数据库中保存事件:使用 Ajax.

$('#calendar').fullCalendar({
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
            },
            defaultDate: '2015-02-12',
            selectable: true,
            selectHelper: true,
            select: function(start, end) {
                var title = prompt('Event Title:');
                var eventData;
                if (title) {
                    eventData = {
                        title: title,
                        start: start,
                        end: end
                    };
                    $.ajax ({
                        url: "http://localhost/phplec/sms/calendar/test",
                        type: 'POST',
                        data: {'title': title, 'start' : start.format(), 'end': end.format()},
                        success: function(msg) {
                            alert(msg); 
                        }
                    });

控制器:这里我接受Ajax请求并连接到数据库

function test() {
        $this->load->model('calendar_model');
        $data = array(
            'title' => $_POST['title'],
            'start' => $_POST['start'],
            'end' => $_POST['end'] 
        );
        $this->calendar_model->add_record($data);
        echo "working";
    }

现在我想在页面 laod 的 fullCalander 中显示我的数据库。 我成功地从数据库中获取事件并将其转换为 json 现在如何在视图中显示它。

function get_records()
    {
        $data = $this->db->get("calendar_test");
        $json_data = json_encode($data->result_array());
        var_dump($json_data);
    }

我如何动态显示此事件

   $.ajax ({
        url: "http://localhost/phplec/sms/calendar/get_records",
        type: 'GET',
        dataType: "html",   //expect html to be returned                
        success: function(response){
    alert(response)
}

我在 fullcalander.js 中成功获得事件 json 现在如何将其传递给事件。

好的,据我了解,您想单击一个日历日,它会提示您输入标题,然后您将数据提交到数据库,然后您想再次查看它。这些是您需要采取的步骤:

  1. 您需要使用 events 方法,以便 fullcalendar 知道如何在加载事件时获取事件,如下所示:

    $('#calendar').fullCalendar({
        // ....your other methods...
        events: 'http://localhost/phplec/sms/calendar/get_records' //this should echo out JSON
    });
    
  2. 在您 ajax 成功将事件保存到数据库后,然后调用 refetchEvents 方法,如下所示:

     $('#calendar').fullCalendar('refetchEvents');
    

最后,我会这样做:

var myCalendar = $('#calendar').fullCalendar({
  header: {
    left: 'prev,next today',
    center: 'title',
    right: 'month,agendaWeek,agendaDay'
  },
  events: 'http://localhost/phplec/sms/calendar/get_records',
  defaultDate: '2015-02-12',
  selectable: true,
  selectHelper: true,
  select: function(start, end) {
    var title = prompt('Event Title:');
    if (title) {
      var eventData = {
        title: title,
        start: start.format(),
        end: end.format()
      };
      $.ajax({
        url: "http://localhost/phplec/sms/calendar/test",
        type: 'POST',
        data: eventData,
        success: function(result) {
          if(result === "working"){
            myCalendar.fullCalendar('refetchEvents');
          }else{
            alert("Error Message");
          }
        },
        error: function(xhr, status, msg) {
          alert(msg);
        }
      });
    }
  }
});