我真的搜索了很多,但我仍然没有解决我的问题。我正在创建一个日历(使用插件全日历并使用代码点火器作为后端(,该日历将显示游览及其特定时间跨度。因此,在这种情况下,事件的标题将是游览名称,并且在游览期间,将获取开始和结束日期。
我已经成功地将数据插入数据库,只是事件没有出现在各自的日期。
这些是我到目前为止编码的内容:
控制器:日历.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();
}
查看: 首页.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文件:主文件.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的片段。我知道日历"以某种方式"从数据库中检索数据,因为我可以看到事件,但是,对于添加的所有事件,它只实时出现在当前日期并显示当前时间。我添加了一个工具提示,以查看是否正在读取游览名称(标题(,并且确实如此。
以下是实际结果:点击查看图片
问题摘要:事件不在各自的日期,添加的时间是实时的。
所以看起来你的问题是你的 URL 返回的 JSON 对象有无法识别的 fullCalendar 数据。因此,您必须获取如下事件:
events: base_url+'Calendar/view_tours',
并将数据库的列从 tour_id
更改为 id
、tour_name
更改为title
、start_date
更改为start
和end_date
更改为end
。这将创建正确的 JSON 对象。