从数据库中填充完整日历javascript中的事件

时间:2015-05-07 04:51:05

标签: javascript php mysql codeigniter fullcalendar

我正在使用codeigniter在php中预订系统。现在我想根据我从数据库中获取的值填充完整日历中的事件。

我的代码:

<script src='<?php echo base_url();?>assets/fullcalendar/fullcalendar.min.js'></script>

<?php
    $var=0;
    foreach($query->result() as $row) {
        $var++;
        $booking_date = $row->booking_date;
        $booking_start_time = $row->booking_start_time;
     }
?>
<script>
$(document).ready(function() {
    // page is now ready, initialize the calendar...
    var booking_date = '<?php echo $booking_date; ?>';
    var booking_start_time = '<?php echo $booking_start_time; ?>';
    $('#calendar').fullCalendar({
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },

        events: [{
            title: 'House Cleaning',
            start: booking_date + 'T' + booking_start_time,
            allDay: false
        }]

    });
});
</script>

使用上面我可以获得完整日历上填写的最后一条记录。我想将从数据库中提取的每个记录填充到完整的日历js。我该怎么做呢

如果我含糊不清,请提前致谢并道歉但我随时准备根据问题进一步解释。

谢谢,

1 个答案:

答案 0 :(得分:3)

在php中构建一个数组,并在javascript中将其格式化为json。将格式化的json传递给event属性,如下所示:

events: buildRecordsToJson(calendar_records)


function buildRecordsToJson(calendar_records){
    var employees = [];
    for(var record in calendar_records) {

        var item = calendar_records[record];

        employees.push({ 
            "title"  : "Case # " + item.case_number,
            "record" : item.id,
            "start"  : item.case_due_date 
        });
    }

    return employees;
}

编辑:

假设这是你的结果

$result=mysqli_query($con,$sql);

从数据库中迭代结果集并将其推送到主数组。

$list = array();
while ($row = mysqli_fetch_row($result))
{ 
    $entry = array();
    $entry["booking_date"] = $row["booking_date"];
    $entry["booking_start_time"] = $row["booking_start_time"];
    array_push($list,$entry);
}
mysqli_free_result($result);

将$ list数组返回到您的javascript并在将其格式化为json后将其提供给您的日历事件(可能没有必要)。