我使用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");
}