我真的已经对此进行了很多搜索,但我还没有解决我的问题。我正在创建一个日历(使用插件fullcalendar并使用codeigniter作为后端),它将显示一个游览及其特定的时间跨度。因此,在这种情况下,事件的标题将是游览名称,并且在游览的持续时间内,将获取开始和结束日期。
我已经成功将数据插入数据库,只是事件没有出现在各自的日期。
这是我到目前为止所编码的内容:
控制器:Calendar.php
function view_tours(){
$this->load->model('Calendar_model');
$tours = $this->Calendar_model->getTours();
echo json_encode($tours);
}
function add_tour(){
$sdate = $this->input->post('start_date'); //start date
$edate = $this->input->post('end_date'); //end date
if($this->form_validation->run() == TRUE){ //column name in db=>name in form
$tour = array('tour_name' => $this->input->post('tour_name'),
'start_date' => date('Y-m-d', strtotime($sdate)),
'end_date' => date('Y-m-d', strtotime($edate)),
'slots' => $this->input->post('slots'),
'rate' => $this->input->post('rate'),);
$this->Calendar_model->insert_tour($tour);
echo 'success';
}
else {
redirect(base_url().'Calendar');
echo "error";
}
}
型号:Calendar_model.php
public function getTours(){
$query = $this->db->get('tours');
return $query -> result_array();
}
function insert_tour($tour){
$this->db->insert('tours', $tour);
return $this->db->insert_id();
}
查看:home.php (这是html文件)
<div id="AddModal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span> <span class="sr-only">close</span></button>
<h4 id="modalTitle" class="modal-title"> Add a Tour </h4>
</div>
<div id="modalBody" class="modal-body">
<?php
echo validation_errors();
?>
<form class="form-horizontal" id="crud-form" method="POST" action="<?php echo base_url();?>Calendar/add_tour">
<div class="form-group">
<label class="col-md-4 control-label" for="tour_name">Tour Name</label>
<div class="col-md-4">
<input type="text" class="form-control" id="tour_name" name="tour_name"/>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="start_date">Start Date</label>
<div class="col-md-4">
<input type="date" class="form-control" id="start_date" name="start_date"/>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="end_date">End Date</label>
<div class="col-md-4">
<input type="date" class="form-control" id="end_date" name="end_date"/>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="slots">Slots</label>
<div class="col-md-4">
<input type="text" class="form-control" id="slots" name="slots"/>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="rate">Rate</label>
<div class="col-md-4">
<input type="text" class="form-control" id="rate" name="rate"/>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="color">Color</label>
<div class="col-md-4">
<input id="color" name="color" type="text" class="form-control input-md" readonly="readonly" />
<span class="help-block">Click to pick a color</span>
</div>
</div>
<button type="submit" class="btn btn-primary"> Add Tour</button>
</form>
</div> <!--end of modal body-->
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
我最近编辑了这个,但这不起作用。 的的
JS文件:main.js 我尝试使用$ .ajax选项获取数据但是当我这样做时,日历本身不会出现。代码有什么问题?我只是ajax的初学者。
events: {
url: base_url+'Calendar/view_tours',
type: 'POST',
data{
title: tour_name,
start: start_date,
end: end_date
},error: function(){
alert('error in fetching from database!');
}
}, //end of events
我刚刚粘贴了一段js。我知道日历是“以某种方式”从数据库中检索数据,因为我可以看到事件,但是,它只会实时显示在当前日期,并显示所有添加事件的当前时间。我添加了一个工具提示,以查看是否正在阅读游览名称(标题),它是。
以下是实际结果:click to see image
问题摘要:事件不在各自的日期,添加的时间是实时的。
答案 0 :(得分:2)
因此,您的问题似乎是您的URL返回的JSON对象具有fullCalendar的无法识别的数据。所以你必须得到这样的事件:
events: base_url+'Calendar/view_tours',
并将数据库的列从tour_id
更改为id
,tour_name
更改为title
,start_date
更改为start
和{{ 1}}到end_date
。这将创建正确的JSON对象。