使用codeigniter进行Jquery fullcalendar CRUD操作

时间:2018-03-12 19:29:41

标签: php jquery ajax codeigniter fullcalendar

我使用fullcalendar插件坚持使用CRUD操作。我可以在数据库中插入值,但是我在从数据库中检索数据时遇到了一些困难,因为我想在日历上显示记录。 我尝试使用eventClick,eventDrop来更新和删除事件(记录)但尚未成功。 任何帮助或指导将不胜感激.... 请注意:我已经在autoload.php中包含了必要的条款。

代码:(JavaScript的,AJAX)

$(document).ready(function() {
    var date = new Date();
    var d = date.getDate();
    var m = date.getMonth();
    var y = date.getFullYear();

    var calendar = $('#calendar').fullCalendar({
                     editable: true,
                     header: {
                          left: 'prev,next today',
                          center: 'title',
                          right: 'month,agendaWeek,agendaDay'
                         },

                     events:"PersonalCalendar/loadEvents",

                                selectable: true,
                                selectHelper: true,
                                select: function(start, end) {
                                var title = prompt('Event Title:');
                                var desc = prompt('Event description:');
                                if (title) {
                                var start = $.fullCalendar.formatDate(start, "yyyy-MM-dd");
                                var end = $.fullCalendar.formatDate(end, "yyyy-MM-dd");
                                $.ajax({
                                    url: '<?php echo site_url('PersonalCalendar/addEvents')?>',
                                    data: 'title='+ title+'&desc='+ desc +'&start='+ start +'&end='+ end,
                                    type: "POST",
                                    success: function(json) {
                                    alert('Event Added Successfully');
                                     }
                                     });
                                         calendar.fullCalendar('renderEvent',
                                         {
                                             title: title,
                                             desc:desc,
                                             start: start,
                                             end: end,
                                         },
                                         true // make the event "stick"
                                         );
                                         }
                                         calendar.fullCalendar('unselect');
                                      },
                                       eventClick: function(event) {
                                       var decision = confirm("Do you really want to delete event?"); 
                                       if (decision) {
                                       $.ajax({
                                       type: "GET",
                                       url: "PersonalCalendar/deleteEvents",
                                       data: "&id=" + event.e_id,
                                       success: function(json) {
                                       $('#calendar').fullCalendar('removeEvents', event.e_id);
                                       alert("Event Deleted Successfully");}
                                       });
                                        }
                                      },

                                      eventDrop: function(event) {
                                             var start = $.fullCalendar.formatDate(event.start_date, "yyyy-MM-dd");
                                             var end = $.fullCalendar.formatDate(event.end_date, "yyyy-MM-dd");
                                             $.ajax({
                                                 url: '<?php echo site_url('PersonalCalendar/updateEvents')?>',
                                                 data: '&start='+ start+'&end='+end+'&id='+ event.e_id ,
                                                 type: "POST",
                                                 success: function(json) {
                                                    alert(start);
                                                      alert("Event Updated Successfully");
                                                    }
                                                });
                                            },
                                      eventResize: function(event) {
                                            var start = $.fullCalendar.formatDate(event.start_date, "yyyy-MM-dd");
                                            var end = $.fullCalendar.formatDate(event.end_date, "yyyy-MM-dd");
                                            $.ajax({
                                                 url: '<?php echo site_url('PersonalCalendar/updateEvents')?>',
                                                 data: '&start='+ start +'&end='+ end +'&id='+ event.e_id ,
                                                 type: "POST",
                                                 success: function(json) {
                                                 alert(" Event Updated Successfully");
                                                 }
                                                });

                                                }

         });

});

PersonalCalendar控制器代码:

public function index()
{
    $this->load->view('Admin/PersonalCalendar');
}

public function loadEvents()
{
    //our start and end dates.
    $this->load->model('CalenderModel');
    $data = $this->CalenderModel->viewInfo();
    $data_array = array();
    foreach ($data->result() as $row) 
    {
        $sub_array = array();
        $sub_array[] = $row->e_id;
        $sub_array[] = $row->event_title;
        $sub_array[] = $row->event_description;
        $sub_array[] = $row->start_event;
        $sub_array[] = $row->end_event;

        $data_array[] = $sub_array;
    }
    echo json_encode($data_array);
}

public function addEvents()
{
    $event_title = $this->input->post('title');
    $event_desc = $this->input->post('desc');
    $start_event = $this->input->post('start');
    $end_event = $this->input->post('end');

    $this->load->model('CalenderModel');

    $this->CalenderModel->addInfo(array(
                                    "event_title" => $event_title,
                                    "event_description" => $event_desc,
                                    "start_event" => $start_event,
                                    "end_event" => $end_event
    ));
    redirect(site_url('PersonalCalendar'));
}

public function updateEvents()
{
    $id = intval($this->input->post('e_id'));
    $start_event = $this->input->post('start');
    $end_event = $this->input->post('end');

    $update_array =array(
                    "start_event" => $start_event,
                    "end_event" => $end_event
    );

    $this->load->model('CalenderModel');

    $this->CalenderModel->updateInfo($id,$update_array);

}
public function deleteEvents()
{
    $id = intval($this->input->get('e_id'));
    $this->load->model('CalenderModel');
    $this->CalenderModel->deleteInfo($id);
}

CalenderModel代码:

function viewInfo()
{
    $res = $this->db->get('tbl_events');
    return $res;
}

function addInfo($data)
{
     $res = $this->db->insert('tbl_events',$data);
     return $res;
}

function updateInfo($id,$update_array)
{
    $this->db->where('e_id',$id);
    $this->db->update('tbl_events',$update_array);
}

function deleteInfo($id)
{
    $this->db->where('e_id',$id);
    $this->db->delete("tbl_events");
}

db image: Please view my table snapshot

0 个答案:

没有答案