代码之家  ›  专栏  ›  技术社区  ›  ssavva05

在全日历中将表格从日改为周或月时重复输入

  •  0
  • ssavva05  · 技术社区  · 6 年前

    当我试图滚动到完整日历上的其他视图时,我遇到了一个问题,当我只做一个条目时,当我的下一个操作是切换视图时,在完整日历中尝试将窗体从一天切换到一周或一个月时,就会出现两个条目。这不会记录到数据库中,一旦我注销并再次登录,问题就消失了。所以这是在查看器中,但我不知道到底该去哪里修复它。有什么建议吗?

    当我只添加一个条目时,此图片在查看器中显示问题,滚动视图显示两个条目:

    我的HTML代码也包含模态。如果需要的话,我可以贴出来。
    我使用最新版本的完整日历。
    完整日历javascript代码为:

    $(document).ready(函数()。{
    var calendar=$('calendar').fullcalendar({
    标题:{
    left:'上一个,下一个今天',
    center:'标题',
    对:“agendaay,agendaweek,month”
    }
    默认视图:“agendaay”,
    可编辑:真的,
    可选:真,
    全天时段:假,
    显示事件时间:假,
    槽长:'02:00:00',
    contentheight:'自动',
    长按延迟:10,
    事件长按延迟:20,
    选择LongPressDelay:25,
    
    事件:“index.php?视图=1”,
    
    EventAfterRender:函数(事件、元素、视图){
    
    if(parseint(event.title)>=180){
    element.css('背景色','f27f0c');
    
    
    element.css(“颜色”,“000000”);
    element.css(“padding-left”,“0.17em”);
    //element.css('text-align','center');
    element.css(“字体大小”,“1.47em”);
    }
    
    事件单击:函数(事件、JSEvent、视图){
    endtime=$.fullCalendar.Moment(event.end).format('h:mm');
    starttime=$.fullCalendar.Moment(event.start).format('dddd,mm mm do yyyy,h:mm');
    var mywhen=开始时间+'-'+结束时间;
    $('modalTitle').html(event.title);
    $('modalwhen').text(mywhen);
    $('event id').val(event.id);
    $('calendarmodal').modal();
    }
    
    
    选择:函数(开始、结束、JSevent){
    endtime=$.fullcalendar.moment(end).format('h:mm');
    starttime=$.fullcalendar.moment(start).format('dddd,mm mm do yyyy,h:mm');
    var mywhen=开始时间+'-'+结束时间;
    start=moment(start).format();
    end=力矩(end).format();
    $('CreateEventModal StartTime').val(开始);
    $('CreateEventModal EndTime').val(结束);
    $('createEventModal when').text(mywhen);
    $('CreateEventModal').Modal('Toggle');
    }
    事件删除:函数(事件、增量){
    $Ajax({
    url:'index.php',
    data:'action=update&title='+event.title+'&start='+moment(event.start).format()+'&end='+moment(event.end).format()+'&id='+event.id,
    键入:“post”,
    成功:函数(JSON){
    //警报(JSON);
    }
    (});
    }
    EventResize:函数(事件){
    $Ajax({
    url:'index.php',
    data:'action=update&title='+event.title+'&start='+moment(event.start).format()+'&end='+moment(event.end).format()+'&id='+event.id,
    类型:“POST”,
    成功:函数(JSON){
    //警报(JSON);
    }
    (});
    }
    (});
    
    $('SubmitButton')。打开(“单击”,函数(E){
    e.preventDefault();
    doSubmit();
    (});
    
    $('删除按钮')。{
    //我们不希望它作为链接,因此取消链接操作
    e.preventDefault();
    doDeleTe();
    (});
    
    函数dodelete()。{
    $(“calendarmodal”).modal(“hide”);
    var eventid=$('eventid').val();
    $Ajax({
    url:'index.php',
    data:'action=delete&id='+eventid,
    类型:“POST”,
    成功:函数(JSON){
    如果(JSON==1)
    $(“calendar”).fullcalendar(“removeEvents”,eventId);
    其他的
    返回错误;
    
    
    }
    (});
    }
    函数doSubmit()。{
    $(“CreateEventModal”).Modal(“隐藏”);
    var title=$('title').val();
    var starttime=$('starttime').val();
    var endtime=$('endtime').val();
    
    $Ajax({
    url:'index.php',
    data:'action=add&title='+title+'&start='+starttime+'&end='+endtime,
    类型:“POST”,
    成功:函数(JSON){
    $(“日历”).fullCalendar(“renderEvent”,
    {
    id:json.id,
    题目:标题,
    开始:开始时间,
    结束:结束时间
    }
    真的);
    }
    (});
    
    }
    (});
    < /代码> <记录到数据库,一旦我注销并再次登录,问题就消失了。所以这是在查看器中,但我不知道到底该去哪里修复它。有什么建议吗?

    当我只添加一个条目时,此图片在查看器中显示问题,滚动视图显示两个条目: This Picture show the issue in viewer when i add only one entrly and scrolling the views shows two entries.

    我的HTML代码也包含模态。如果需要的话,我可以贴出来。
    我使用最新版本的完整日历。
    完整的日历javascript代码是:

    $(document).ready(function () {
      var calendar = $('#calendar').fullCalendar({
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'agendaDay,agendaWeek,month'
        },
        defaultView: 'agendaDay',
        editable: true,
        selectable: true,
        allDaySlot: false,
        displayEventTime: false,
        slotDuration: '02:00:00',
        contentHeight: 'auto',
        longPressDelay: 10,
        eventLongPressDelay: 20,
        selectLongPressDelay: 25,
    
        events: "index.php?view=1",
    
        eventAfterRender: function (event, element, view) {
    
            if (parseInt(event.title) >= 180) {
                element.css('background-color', '#F27F0C');
    
    
            element.css('color', '#000000');
            element.css('padding-left', '0.17em');
            //element.css('text-align','center');
            element.css('font-size', '1.47em');
        },
    
        eventClick: function (event, jsEvent, view) {
            endtime = $.fullCalendar.moment(event.end).format('h:mm');
            starttime = $.fullCalendar.moment(event.start).format('dddd, MMMM Do YYYY, h:mm');
            var mywhen = starttime + ' - ' + endtime;
            $('#modalTitle').html(event.title);
            $('#modalWhen').text(mywhen);
            $('#eventID').val(event.id);
            $('#calendarModal').modal();
        },
    
    
        select: function (start, end, jsEvent) {
            endtime = $.fullCalendar.moment(end).format('h:mm');
            starttime = $.fullCalendar.moment(start).format('dddd, MMMM Do YYYY, h:mm');
            var mywhen = starttime + ' - ' + endtime;
            start = moment(start).format();
            end = moment(end).format();
            $('#createEventModal #startTime').val(start);
            $('#createEventModal #endTime').val(end);
            $('#createEventModal #when').text(mywhen);
            $('#createEventModal').modal('toggle');
        },
        eventDrop: function (event, delta) {
            $.ajax({
                url: 'index.php',
                data: 'action=update&title=' + event.title + '&start=' + moment(event.start).format() + '&end=' + moment(event.end).format() + '&id=' + event.id,
                type: "POST",
                success: function (json) {
                    //alert(json);
                }
            });
        },
        eventResize: function (event) {
            $.ajax({
                url: 'index.php',
                data: 'action=update&title=' + event.title + '&start=' + moment(event.start).format() + '&end=' + moment(event.end).format() + '&id=' + event.id,
                type: "POST",
                success: function (json) {
                    //alert(json);
                }
            });
        }
    });
    
    $('#submitButton').on('click', function (e) {
        e.preventDefault();
        doSubmit();
    });
    
    $('#deleteButton').on('click', function (e) {
        // We don't want this to act as a link so cancel the link action
        e.preventDefault();
        doDelete();
    });
    
    function doDelete() {
        $("#calendarModal").modal('hide');
        var eventID = $('#eventID').val();
        $.ajax({
            url: 'index.php',
            data: 'action=delete&id=' + eventID,
            type: "POST",
            success: function (json) {
                if (json == 1)
                    $("#calendar").fullCalendar('removeEvents', eventID);
                else
                    return false;
    
    
            }
        });
    }
    function doSubmit() {
        $("#createEventModal").modal('hide');
        var title = $('#title').val();
        var startTime = $('#startTime').val();
        var endTime = $('#endTime').val();
    
        $.ajax({
            url: 'index.php',
            data: 'action=add&title=' + title + '&start=' + startTime + '&end=' + endTime,
            type: "POST",
            success: function (json) {
                $("#calendar").fullCalendar('renderEvent',
                        {
                            id: json.id,
                            title: title,
                            start: startTime,
                            end: endTime
                        },
                        true);
            }
        });
    
      }
    });
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   ssavva05    6 年前

    好啊!我终于发现了。我必须在dosubmit函数中添加两行代码,代码是: $('#calendar').fullCalendar('removeEvents'); , $('#calendar').fullCalendar('refetchEvents');


    到目前为止的功能是:

    function doSubmit() {
        $("#createEventModal").modal('hide');
        var title = $('#title').val();
        var startTime = $('#startTime').val();
        var endTime = $('#endTime').val();
    
        $.ajax({
            url: 'index.php',
            data: 'action=add&title=' + title + '&start=' + startTime + '&end=' + endTime,
            type: "POST",
            success: function (json) {
                $("#calendar").fullCalendar('renderEvent',
                        {
                            id: json.id,
                            title: title,
                            start: startTime,
                            end: endTime
                        },
                        true);
                $('#calendar').fullCalendar('removeEvents');
                $('#calendar').fullCalendar('refetchEvents');
    
            }
        });
    
    }