Javascript 完整日历和多个动态事件源
我的FullCalendar(1.6.4)使用单个JSON提要(单个用户的日历)。现在,我想增强功能,以便日历将显示多个用户日历(管理员及其子帐户日历)。在调用日历之前,我不知道将调用多少用户日历。因此,我有一个Ajax函数调用一个PHP脚本,它为admin帐户返回所有用户ID的JSON提要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_
$(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,