Javascript 完整日历和多个动态事件源

Javascript 完整日历和多个动态事件源,javascript,jquery,ajax,fullcalendar,Javascript,Jquery,Ajax,Fullcalendar,我的FullCalendar(1.6.4)使用单个JSON提要(单个用户的日历)。现在,我想增强功能,以便日历将显示多个用户日历(管理员及其子帐户日历)。在调用日历之前,我不知道将调用多少用户日历。因此,我有一个Ajax函数调用一个PHP脚本,它为admin帐户返回所有用户ID的JSON提要 $(document).ready(getUsers); function getUsers() { var data = $.ajax( { url: '/s/calendar_

我的FullCalendar(1.6.4)使用单个JSON提要(单个用户的日历)。现在,我想增强功能,以便日历将显示多个用户日历(管理员及其子帐户日历)。在调用日历之前,我不知道将调用多少用户日历。因此,我有一个Ajax函数调用一个PHP脚本,它为admin帐户返回所有用户ID的JSON提要

$(document).ready(getUsers);

function getUsers() {
    var data = $.ajax( {
        url: '/s/calendar_userdata.php',
        method: 'GET',
        dataType: 'json',
        success: function(userData) {
            var user_count = userData.length;
            var uid_array = [];

            // Create the sources
            for (var i = 0; i < user_count; i++)
            {
                var uid = userData[i].uid;
                if(!uid_array[i]) uid_array[i] = [];
                uid_array[i] = uid;
            }
        }
    });
    loadCal();
}
我试过: 1) 通过最初在getUsers之外定义uid_数组而不使用“var”来创建全局变量。 2) 在getUsers函数中设置“window.uid\u array=uid\u array;”。 3) 在getUsers函数的末尾添加“returnuid\u array;”。 4) 在getUsers函数的末尾添加闭包。但是,我并没有很好地理解它们,以至于相信我做得对

我有两个问题: 1) 如何使数组(uid\u数组)在getUsers之外可用? 2) 阵列需要采用什么格式,以便fullCalendar能够识别和使用它


我已经在这上面呆了一段时间了。非常感谢。

我认为如果您更改
loadCal
功能的位置,您可以实现您的目标:

function getUsers() {
    var data = $.ajax( {
        url: '/s/calendar_userdata.php',
        method: 'GET',
        dataType: 'json',
        success: function(userData) {
            var user_count = userData.length;
            var uid_array = [];

            // Create the sources
            for (var i = 0; i < user_count; i++)
            {
                var uid = userData[i].uid;
                if(!uid_array[i]) uid_array[i] = [];
                uid_array[i] = uid;
            }
            //CALL loadCal FROM HERE
            loadCal(uid_array);
        }
    });
}

当您在
getUsers
中进行
ajax
调用时,它不会返回,并且会调用
loadCal
。因此,您需要确保只有在返回ajax后才调用它,而ajax在
success
callback中返回。

有效!谢谢。我知道这会是一个小小的调整…我就是找不到。谢谢
function getUsers() {
    var data = $.ajax( {
        url: '/s/calendar_userdata.php',
        method: 'GET',
        dataType: 'json',
        success: function(userData) {
            var user_count = userData.length;
            var uid_array = [];

            // Create the sources
            for (var i = 0; i < user_count; i++)
            {
                var uid = userData[i].uid;
                if(!uid_array[i]) uid_array[i] = [];
                uid_array[i] = uid;
            }
            //CALL loadCal FROM HERE
            loadCal(uid_array);
        }
    });
}
function loadCal(uidArray) {
$('#calendar').fullCalendar({
    eventSources: [
    {
        url: '/s/events.php',
        type: 'GET',
        data:
        {
            uid: uidArray
        }
    }
    ],
    editable: true,