Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 显示多个事件源的事件取决于复选框';全日历中的选择_Javascript_Jquery_Ajax_Plone_Fullcalendar - Fatal编程技术网

Javascript 显示多个事件源的事件取决于复选框';全日历中的选择

Javascript 显示多个事件源的事件取决于复选框';全日历中的选择,javascript,jquery,ajax,plone,fullcalendar,Javascript,Jquery,Ajax,Plone,Fullcalendar,我正在添加Solgema Fullcalendar中的功能- (使用复选框选择并显示事件) 我的事件源看起来像: eventSources: [ ... { url: '/admin_schedule/get_schedule_db_recurring_events_on_daysweek/',//"<?echo $data_path?>", type: 'GET',

我正在添加Solgema Fullcalendar中的功能- (使用复选框选择并显示事件)

我的事件源看起来像:

eventSources: [
            ...
            {
                url: '/admin_schedule/get_schedule_db_recurring_events_on_daysweek/',//"<?echo $data_path?>",
                type: 'GET',
                data: {sch_teacher_id: sch_teacher_id},
                backgroundColor: 'red',
            }

        ],
  • 关于更改它们的ajax:

    $('.teacher').change(function (event) {
            events1.data.sch_teacher_id = $(this).val(); 
            events2.data.sch_teacher_id = $(this).val();
            events3.data.sch_teacher_id = $(this).val();
            $calendar.fullCalendar('refetchEvents');
        });
    
  • 事件源的变量:

    var events1 = {
        url: 'url1',
        type: 'GET',
        data: {sch_teacher_id: $('#teacher').val() },
        success: function (response) {
            return response;
        }
    };
    var events2 = {
        url: 'url2',
        type: 'GET',
        data: {sch_teacher_id: $('#teacher').val() },
        backgroundColor: 'green',
        success: function (response) {
            return response;
        }
    };
    var events3 = {
        url: 'url3',
        type: 'GET',
        data: { sch_teacher_id: $('#teacher').val() },
        backgroundColor: 'red',
        success: function (response) {
            return response;
        }
    };
    
  • 我的电话

    eventSources: [
        events1,
        events2,
        events3
    ],
    
  • 您需要,但在调用之前要小心更新数据参数(否则它将保持初始设置值)

    编辑:用于声明事件对象的代码:

    var events = {
        url: 'url',
        type: 'GET',
        data: { Id: $('#divId').val() },
        success: function (response) {
            return response;
        }
    };
    
    $('#calendar').fullCalendar({
        events: events
    });
    
    您需要,但在调用之前要小心更新数据参数(否则它将保持初始设置值)

    编辑:用于声明事件对象的代码:

    var events = {
        url: 'url',
        type: 'GET',
        data: { Id: $('#divId').val() },
        success: function (response) {
            return response;
        }
    };
    
    $('#calendar').fullCalendar({
        events: events
    });
    

    Tocalaghan,它变得更好了,现在ajax工作得很好,但是schu teacher_id仍然很旧:$('.teacher').change(function(event){event.schu teacher_id=128;$calendar.fullCalendar('refetchEvents');});它不是您应该更改的事件参数,而是对初始化fullcalendar时创建的事件对象的引用。假设这被称为“事件”,您应该将event.schu teacher_id=128替换为events.data.schu teacher_id。看起来您已经匿名创建了事件对象,为了以后引用它,您需要在使用它之前创建它。创建一个事件对象(var event={url:'url',键入:'Get'…})并用ittocalan替换你的{url:'url',键入:'Get'…},看,这是因为在视图的开头:$(document).ready(函数(){var$calendar=$('#calendar');…var schu teacher_id=“;$calendar.fullCalendar({…所以我想我再次设置了php中schu teacher_id的值:var schu teacher_id=“”;但我不能假设它是空的。请参阅编辑以获取进一步的说明。您还应该能够使用eventSources,关键是您首先声明events对象,然后使用它设置fullcalendar对象,然后您就可以从更改()访问events.data.whateverParamToChangecheckboxtocallaghan的函数,它变得更好了,现在ajax工作得很好,但是sch_teacher_id仍然很旧:$('.teacher').change(函数(事件){event.schu teacher_id=128;$calendar.fullCalendar('refetchEvents');});它不是您应该更改的事件参数,而是对您在初始化fullcalendar时创建的事件对象的引用。假设这称为“事件”您应该将event.schu teacher_id=128替换为events.data.schu teacher_idIt看起来您已经匿名创建了事件对象,以便以后在使用它之前引用它。创建一个事件对象(var event={url:'url',type:'Get'.})并替换您的{url:'url',type:'Get'.}有了iTocalan,你看,这是因为在视图的开头:$(document).ready(function(){var$calendar=$('#calendar');…var schu teacher_id=“”;$calendar.fullCalendar({…所以我想我再次从php设置了schu teacher_id的值:var schu teacher_id=“”;但我不能假设它是空的。请参阅编辑以获取进一步的说明。您还应该能够使用eventSources,关键是您首先声明events对象,然后使用它设置fullcalendar对象,然后您就可以从更改()访问events.data.whateverParamToChange复选框的函数我不确定我是否理解您的编辑。您可以从url端点返回一系列事件,而不仅仅是一个。此外,这似乎是一个新问题我不确定我是否理解您的编辑。您可以从url端点返回一系列事件,而不仅仅是一个。而且这似乎是一个新问题
    $('.CheckBoxClass').change(function () {
        events.data.sch_teacher_id = $(this).val();
        $('#calendar').fullCalendar('refetchEvents');
    });
    
    var events = {
        url: 'url',
        type: 'GET',
        data: { Id: $('#divId').val() },
        success: function (response) {
            return response;
        }
    };
    
    $('#calendar').fullCalendar({
        events: events
    });