Php 基于附加ID参数筛选Fullcalendar事件

Php 基于附加ID参数筛选Fullcalendar事件,php,jquery,json,fullcalendar,Php,Jquery,Json,Fullcalendar,我使用jQuery库从MYSQL数据库中显示运动队的赛事。我已经成功地设置了一个JSON提要,它显示了数据库中的所有事件 但是,教练最多可以管理三个团队,每个团队都有自己的页面和自己的日历。目前,所有事件都列在所有日历中。我需要某种过滤器来确保每个日历中只显示属于正确团队的事件 我根据每个团队的ID为他们提供了一个唯一的URL,如下所示 http://localhost/master/index.php/team/56 JSON提要当前输出以下内容: {"id":"14","event_id"

我使用jQuery库从MYSQL数据库中显示运动队的赛事。我已经成功地设置了一个JSON提要,它显示了数据库中的所有事件

但是,教练最多可以管理三个团队,每个团队都有自己的页面和自己的日历。目前,所有事件都列在所有日历中。我需要某种过滤器来确保每个日历中只显示属于正确团队的事件

我根据每个团队的ID为他们提供了一个唯一的URL,如下所示

http://localhost/master/index.php/team/56
JSON提要当前输出以下内容:

{"id":"14","event_id":"8","team":"56","start":"2013-12-16 18:00:00","title":"Mandagsgym","description":"Ivar er trenar","location":"Haukelandshallen","start_time":"18:00:00","end_time":"20:00:00"}
我当前的jQuery:

var filter_id = $('#filter_id').val(); //a variable with the team ID, 
                                       fetched from a hidden input field

$('#calendar').fullCalendar({
    firstDay:'1',
    defaultView: 'basicWeek',
    height: 400,
    editable: true,
    weekends: false,
    header: 
    {
        left: '',
        center: '',
        right: 'prev,next, month,basicWeek'
    },
    columnFormat: 'ddd d/M',
    allDayDefault: false,
    events: 
    {
        url: 'http://localhost/master/index.php/team/json'
    }
    });
在我看来,我有两个选择: 1) 找到一种方法将URL的第三段(团队ID)分配给JSON提要PHP函数,从而为日历提供动态JSON提要

2) 从URL获取团队ID,将其分配给Javascript变量,然后使用Fullcalendar方法进行一些过滤,从日历中删除或至少隐藏团队ID与URL中的团队ID不匹配的事件


这两种方法都远远超出了我相对有限的知识范围。我个人喜欢第二种方法。如果有人能想出一个解决方案,我会非常高兴,因为我已经在这个问题上纠缠了好几天。

我认为选择二是最简单的,但不一定是最好的。使用自定义事件函数按团队id筛选结果,然后将筛选结果传递到日历,如下所示:

events: function(start,end, callback) {
    $.getJSON('http://localhost/master/index.php/team/json', function(data){
        var eventsToShow = [];
        for(var i=0; i<data.length; i++){
            if(data[i].team == filter_id){
                eventsToShow.push(data[i]);
            }
        }
        callback(eventsToShow);
    });
}
事件:函数(开始、结束、回调){
$.getJSON('http://localhost/master/index.php/team/json,函数(数据){
var eventsToShow=[];

对于(var i=0;ii如果我站在你的立场上,我会明确地向php调用添加一个参数。目前还不清楚你使用的是哪种路由,也没有向我们展示检索数据的php函数。在我看来,你可以只向url添加一个get参数:“”+filter_id;然后通过$get['team_id']检索该参数;在您的php文件中,选项1更有意义。您不需要另外两个团队的数据,那么为什么要将其返回给客户端?现在这不是一个大问题,但如果您有100个团队,它将是一个大问题。感谢各位的反馈。经过思考,这确实似乎是一个更好的解决方案,尽管我现在将坚持使用备选方案2,但我会寻找一个更好的解决方案稍后再讨论解决方案。Shade,此功能运行良好,感谢您的帮助。正如cptnk和Mike在上面的评论中指出的,选项1可能是最有利于性能的,我将继续寻找此类解决方案。但是,您的回答确实解决了我的问题,并将被标记为正确答案。