FullCalendar JSON Feed无效:我的日历不会将JSON Feed中的数据放到我的网页上

时间:2013-06-29 19:42:03

标签: php jquery ajax json fullcalendar

为什么我的日历没有将JSON Feed中的数据放到我的网页上?

<script type='text/javascript'>
$(document).ready(function() {
    var date = new Date();
    var d = date.getDate();
    var m = date.getMonth();
    var y = date.getFullYear();
    var calendar = $('#calendar').fullCalendar({
        events: 'myfeed.php',
    header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },
        selectable: true,
        selectHelper: true,
    eventSources: [

    // your event source
    {
        url: '/myfeed.php', // use the `url` property
        color: 'red',    // an option!
        textColor: 'black'  // an option!
    }
    // any other sources...
],
  eventClick: function(calEvent, jsEvent, view) {
if (!confirm("Are you sure you want to delete this?")) {
    }
else
{
    // remove calender, and post the info to page 
$.post("mybook.php", { idnumber: calEvent.id, remove: '1' } );
$('#calendar').fullCalendar('removeEvents', [calEvent.id]);
}
}
    });     
});
</script>

JSON Feed PHP代码

<?php    $arr = array('id' => '1', 'title' => 'Apples', 'start' => '1372530615', 'end' => '1372537615', 'allDay' => false);
echo json_encode($arr);
?>

Charles web调试器显示该脚本正在评估正确的页面,并且它有一个响应。但是,我的日历什么也没做。 :(我认为这可能是因为我使用的是SSL,但我尝试了两种方式。

将我的代码缩减为

<script type='text/javascript' src='jquery-1.9.1.min.js'></script>
<script type='text/javascript' src='fullcalendar.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
var calendar = $('#calendar').fullCalendar({
    events: 'myfeed.php'
});     
});
</script>

JSON Feed输出

{"id":"1","title":"Apples","allDay":false,"start":"1372507615","end":"1372537615"}

4 个答案:

答案 0 :(得分:1)

如果您已使用eventSources属性,请删除events

答案 1 :(得分:0)

不得不把[]放在我的JSON输出上。

答案 2 :(得分:0)

我想确认上面接受的答案。我已经看到了几个关于FullCalendar中没有出现的事件的问题,特别是JSON,解决方案似乎与语法有关。你必须完全给出它想要看的FullCalendar,关于这一点的文档有点不清楚。期待很多试验和错误。

答案 3 :(得分:0)

我在同一个问题上找到了这个问题并做了以下事情让它发挥作用:

  1. 确保末尾有方括号[]
  2. 确保末尾没有额外的逗号(这就是我的意思) - 显然在使用参数内联时它没问题,但是当从JSON加载时它有这个问题
  3. 对fiend和values使用双引号。
  4. 我最终重写了我的php以创建一个对象数组,将值加载到数组中,然后将其转换为JSON(这解决了所有上述JSON格式问题)
  5. 我的JSON输出看起来像:

    [{"title":"Vishal","start":"2018-01-12 00:00:00","end":"2018-01-12 10:00:00"},{"title":"Vishal","start":"2018-01-14 14:00:00","end":"2018-01-14 15:00:00"}]
    

    我的PHP代码如下:

    $data = array();
    
    foreach($results as $run)
    {
    
        $obj = (object) [
        'title' => $run->firstname,
        'start' => $run->startdatetime,
        'end' => $run->enddatetime
        ];
    
        $data[] = $obj;
    
    }
    echo json_encode($data);
    

    我希望这会有所帮助。