【问题标题】:Pulling Data for next/prev months提取下/上个月的数据
【发布时间】:2010-08-11 18:57:27
【问题描述】:

我正在提取正在查看的月份的 Fullcalendar 数据。当我单击 Next/Prev Month 视图按钮时,它不会出去并获取新月份的新数据。

如何获得 Next/Prev 按钮以再次调用数据库并提取该月的记录?

【问题讨论】:

    标签: jquery fullcalendar


    【解决方案1】:

    定义事件回调以向您的 api 发出 ajax 请求。请参阅文档here。这是一个与我的 api 集成的示例,它使用 epoch start 和 end 作为查找中的获取参数。

    $('#calendar').fullCalendar({
        // other options here...
    
        events: function(start, end, callback) {
            start = start.getTime()/1000;
            end = end.getTime()/1000;
            $.ajax({
                url: '/api/events/1/?start='+ start + '&end=' + end,
                dataType: 'json',
                success: function(doc) {
                    var my_events = [];
                    $.each(doc.person.events, function (index, elem) {
                       my_events.push({
                           title: elem.event.title,
                           start: elem.event.start,
                           end: elem.event.end,
                       });
                    });
                callback(my_events);
              }
            });
        }
    });
    

    在我的实际代码中(这是一个精简版),我对 ajax 请求做了更多的事情。您还可以使用 fullcalendar 的 json feed events 简化此操作,它将为您传递开始和结束纪元日期获取参数。例如:

    $('#calendar').fullCalendar({
        events: "/api/events/1/"
    });
    

    这两种解决方案都会像 http://yourwebsite.com/api/events/1/?start=123454444&end=12355324234 这样对您的服务器进行 api 调用,因此您需要设置您的服务器以适当地处理它。

    注意:如果您想知道,这些 url 中的“1”用于标识要为其获取事件的用户的 id。

    fullcalendar 的docs 很棒,阅读它们,然后再阅读它们。

    【讨论】:

    • 我认为这可能是我所追求的解决方案。函数从哪里获取开始、结束和回调值?我需要通过 fullcalendar 将查看的月/年传递给 JSON 文件。我会试一试,让你知道。你在开玩笑吗,完整的日历文档太可怕了!!!文档中的一些示例或代码 sn-ps 怎么样。很高兴看到代码是如何实现的,而不是它们拥有什么。它显示的 JSON 示例怎么样。根本不显示格式化时间,只有日期。文档缺乏恕我直言。
    • events 回调被传递到选项中,然后在 fullcalendar 内部使用参数 start, end, callback 调用。至于文档,请记住,这是一个开发、记录和开源它的人。与大多数其他包装相比,它非常好。 EventObject 文档代码中非常清楚地解释了格式时间的内容。在缺少文档的地方,总有可以参考的源代码。
    【解决方案2】:

    您需要在初始化时告诉控件从何处加载事件数据。您的选择是指定您编写的a json feedan array of eventsa function,它们将检索所有事件。

    如果使用 function 或 json 方法,fullcalendar 控件将仅尝试加载用户尝试查看的范围内的数据。因此,当用户导航到下个月时,将从提要/函数中检索该月份的事件。

    【讨论】:

    • 嘿莫蒂,感谢您的帮助。我试图避免在我的 CF/JSON 提要中提取所有数据。如果有人点击下个月/上个月,我希望它从数据库中检索该月的数据。当有可能并非所有东西都需要时,将所有东西都从数据库中提取出来似乎有很多开销。 (如果用户只查看当前月份,为什么要提取一年的数据)
    • @Josh fullcalendar 会自动将一些参数添加到您为 json feed 指定的路径中。请参阅此处:arshaw.com/fullcalendar/docs/event_data/events_json_feed 您可以使用startend 参数来查询您的数据库中只需要的事件!
    【解决方案3】:

    我在 sdolan 的答案上写了一个变体。例子在这里:

    jquery fullcalendar: calling events on clicking prev and next button in fullcalendar

    【讨论】:

      猜你喜欢
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多