我是fullcalendar和ajax的新手。我很难从数据库中获取数据,这些数据应该显示在我的完整日历中。我尝试了一个代码来做同样的事情。但是我不能通过ajax作为json提要获取数据。到目前为止,我是通过代码点火器MVC从数据库中获取数据的。但是我无法将数据传递给fullcalendar事件。
The following is my view file: calendar.php
<script>
$(document).ready(function() {
$.ajax({
url: "<?php echo base_url() ?>/common/calendar/show_holidays",
type: 'POST', // Send post data
data: 'type=fetch',
async: true,
success: function(s){
freshevents = s;//alert(s);
}
});
$('#calendar').fullCalendar('addEventSource', JSON.parse(freshevents));
/* initialize the calendar
-----------------------------------------------------------------*/
$('#calendar').fullCalendar({
//events: JSON.parse(json_events),
//events: [{"id":"14","title":"New Event","start":"2015-01-24T16:00:00+04:00","allDay":false}],
utc: true,
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
editable: true,
droppable: true,
events: {
}
});
});
</script>
首先需要将SQL
结果集解析为JSON
,您可以使用下一个PHP
函数:
连接数据库功能:
function connectDB(){
$con = mysqli_connect("HOST", "USER", "PASS", "DB");
if($con){
echo 'OK';
}else{
echo 'KO';
}
return $con;
}
与DB:断开连接的功能
function disconnectDB($con){
$close = mysqli_close($con);
if($close){
//echo 'OK';
}else{
//echo 'KO';
}
return $close;
}
从一个结果集获取JSON解析的函数:
function getArraySQL(){
$conexion = connectDB();
//generate SQL query
if(!$result = mysqli_query($conexion, "SELECT title,color,start FROM events")) die();
$rawdata = array();
while($row = mysqli_fetch_array($result))
{
$title=$row['title'];
$color=$row['color'];
$start=$row['start'];
$rawdata[] = array('title'=> $title, 'color'=> $color, 'start'=> $start);
}
disconnectDB($conexion);
//Parse to JSON and return
$rawdata=json_encode($rawdata);
return $rawdata;
}
完成此步骤后,您可以将返回的JSON
包含在events
日历脚本中:
$(document).ready(function() {
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek'
},
events: <?php
$result = array();
$result=getArraySQL();
if(isset($result)){
echo $result;
}
?>,
eventRender: function (event, element) {
element.attr('href', 'javascript:void(0);');
element.click(function() {
alert(event.title);
});
}
});
});
希望这能帮助到你。