2013-10-26 55 views
0

我在fullcalendar的彈出窗口中添加標題的問題很少。當我點擊完整日曆彈出窗口顯示,我可以添加標題和提交。提交後是事件已添加,但當我再次點擊進入日曆彈出窗口顯示與舊標題,然後添加不可能,只有刷新整個網站後。Fullcalendar彈出式問題

http://jsfiddle.net/Nw3fL/3/

有我的代碼:

$(document).ready(function() { 
    var date = new Date(); 
    var d = date.getDate(); 
    var m = date.getMonth(); 
    var y = date.getFullYear(); 
    var calendar = $('#calendar').fullCalendar({ 
     aspectRatio: 1.45, 
     droppable: true, 
     weekend: true, 
     firstHour: 7, 
     columnFormat: { 
      month: 'dddd',  
      week: 'ddd, dS', 
      day: 'dddd, MMM dS' 
     }, 
     header: { 
      right: 'prev,next', 
      center: 'title', 
      left: 'month,agendaWeek,agendaDay' 
     }, 
     viewDisplay: function(view) { 
       try { 
        setTimeline(); 
       } catch(err) {} 
     },   
     agenda: 'h:mm{ - h:mm}', 
       '': 'h(:mm)t', 
     drop: function (date, allDay) { 
      var originalEventObject = $(this).data('eventObject'); 
      var copiedEventObject = $.extend({}, originalEventObject); 
      copiedEventObject.start = date; 
      copiedEventObject.end = new Date(date.getDate()+2); 
      copiedEventObject.allDay = allDay; 
      start = $.fullCalendar.formatDate(copiedEventObject.start, "yyyy-MM-dd HH:mm:ss"); 
      end = $.fullCalendar.formatDate(copiedEventObject.end, "yyyy-MM-dd HH:mm:ss"); 
      $.ajax({ 
        url: '<?php echo SITEURL; ?>/fullcalendar/add_events.php', 
        data: 'title=' + copiedEventObject.title + '&start=' +start + '&end=' +end + "&backgroundColor=" + copiedEventObject.backgroundColor + '&creator=<?php print_r($_SESSION["uid"]); ?>', 
        type: "POST", 
        success: function (response) { 
         console.log(response); 
         $('#calendar').fullCalendar('refetchEvents'); 
        } 
        }); 
       if ($('#drop-remove').is(':checked')) { 
        $(this).remove(); 
       } 
     }, 
     editable: true, 
     defaultView: 'agendaWeek', 
     firstDay: 1, 
     handleWindowResize: true, 
     dragOpacity: 0.7, 
     allDayDefault: false, 
     events: "<?php echo SITEURL; ?>/fullcalendar/events.php?creator=<?php print_r($_SESSION['uid']); ?>", 
     timeFormat: 'HH:mm { - HH:mm}', 
     selectable: true, 
     selectHelper: true, 

//我選擇功能

 select: function (start, end, allDay) { 
      $(".popup").css({'display':'block', 'opacity':'0'}).animate({'opacity':'1','top':'45%'}, 300); 
      $(".submitForm").click(function(){ 
      var title = $(".title").val(); 
      if (title) { 
       start = $.fullCalendar.formatDate(start, "yyyy-MM-dd HH:mm:ss"); 
       end = $.fullCalendar.formatDate(end, "yyyy-MM-dd HH:mm:ss"); 
       $.ajax({ 
        url: '<?php echo SITEURL; ?>/fullcalendar/add_events.php', 
        data: 'title=' + title + '&start=' + start + '&end=' + end + '&creator=<?php print_r($_SESSION["uid"]); ?>', 
        type: "POST", 
        success: function (json) { 
         console.log(json); 
         $('#calendar').fullCalendar('refetchEvents'); 
        } 
       }); 
      console.log("start " + start + " end " + end); 
      } 
      calendar.fullCalendar('unselect'); 
      $(".popup").css({'display':'block', 'opacity':'1'}).animate({'opacity':'0','top':'55%','display':'none'}, 300); 
      }); 
      $(".exit").click(function(){ 
      $(".popup").css({'display':'block', 'opacity':'1'}).animate({'opacity':'0','top':'55%','display':'none'}, 300); 
      }); 
     }, 

//

 eventDrop: function (event, delta) { 
       start = $.fullCalendar.formatDate(event.start, "yyyy-MM-dd HH:mm:ss"); 
       end = $.fullCalendar.formatDate(event.end, "yyyy-MM-dd HH:mm:ss"); 
       $.ajax({ 
        url: '<?php echo SITEURL; ?>/fullcalendar/update_events.php', 
        data: 'title=' + event.title + '&start=' + start + '&end=' + end + '&id=' + event.id, 
        type: "POST", 
        success: function (response) { 
          console.log(response); 
        } 
       }); 
     }, 
     eventClick: function (event, jsEvent, view) { 
       if (confirm("Really delete event " + event.title + "with id " + event.id + "?")) { 
       $.ajax({ 
        url: "<?php echo SITEURL; ?>/fullcalendar/delete_event.php", 
        data: 'eid='+event.id, 
        type: "POST", 
        success: function (response) { 
         console.log(response); 
         calendar.fullCalendar('removeEvents', event.id); 
        } 
       }); 
       } 
     }, 
     eventResize: function (event) { 
       start = $.fullCalendar.formatDate(event.start, "yyyy-MM-dd HH:mm:ss"); 
       end = $.fullCalendar.formatDate(event.end, "yyyy-MM-dd HH:mm:ss"); 
       $.ajax({ 
        url: '<?php echo SITEURL; ?>/fullcalendar/update_events.php', 
        data: 'title=' + event.title + '&start=' + start + '&end=' + end + '&id=' + event.id, 
        type: "POST", 
        success: function (response) { 
         console.log(response); 
        } 
       }); 
     }, 
    }); 
$('#external-events div.external-event').each(function() { 
    var eventObject = { 
     title: $.trim($(this).text()), 
     backgroundColor : $.trim($(this).attr('bgc')) 
    }; 
    $(this).data('eventObject', eventObject); 
    $(this).draggable({ 
     zIndex: 999, 
     revert: true, 
     revertDuration: 0 
    }); 
    }); 
}); 

我的html:

<div class="popup cal-popup"> 
    <h2>Add event!</h2> 
    <br /> 
    <legend>Event title:</legend> 
    <input class="title eventcal-title" type="text" size="26" />  
    <a href="#" onclick="return false" class="submitForm" style="color:black;"><button>Submit</button></a>&emsp; 
    <a href="#" onclick="return false" class="exit" style="color:black;"><button>cancel</button></a> 
</div> 

非常感謝您的任何幫助! 最好的問候 Makromat

+0

你看到控制檯任何JS錯誤? – nik

+0

Uncaught TypeError:Object 2013-10-22 07:30:00 has no method'getFullYear'Thanks! – Makromat

回答

0

嘗試以下JS ...

有與日期格式問題。

我已經取代低於線...

start = $.fullCalendar.formatDate(start, "yyyy-MM-dd HH:mm:ss"); 
end = $.fullCalendar.formatDate(end, "yyyy-MM-dd HH:mm:ss"); 

有了以下...

start = $.fullCalendar.formatDate(new Date(start), "yyyy-MM-dd HH:mm:ss"); 
end = $.fullCalendar.formatDate(new Date(end), "yyyy-MM-dd HH:mm:ss"); 

Demo Fiddle

$(document).ready(function() { 
     var date = new Date(); 
     var d = date.getDate(); 
     var m = date.getMonth(); 
     var y = date.getFullYear(); 
     var calendar = $('#calendar').fullCalendar({ 
      aspectRatio: 1.45, 
      droppable: true, 
      weekend: true, 
      firstHour: 7, 
      columnFormat: { 
       month: 'dddd', 
       week: 'ddd, dS', 
       day: 'dddd, MMM dS' 
      }, 
      header: { 
       right: 'prev,next', 
       center: 'title', 
       left: 'month,agendaWeek,agendaDay' 
      }, 
      viewDisplay: function (view) { 
       try { 
        setTimeline(); 
       } catch (err) {} 
      }, 
      agenda: 'h:mm{ - h:mm}', 
       '': 'h(:mm)t', 
      drop: function (date, allDay) { 
       var originalEventObject = $(this).data('eventObject'); 
       var copiedEventObject = $.extend({}, originalEventObject); 
       copiedEventObject.start = date; 
       copiedEventObject.end = new Date(date.getDate() + 2); 
       copiedEventObject.allDay = allDay; 
       $.fullCalendar.formatDate(copiedEventObject.start, "yyyy-MM-dd HH:mm:ss"); 
       end = $.fullCalendar.formatDate(copiedEventObject.end, "yyyy-MM-dd HH:mm:ss"); 
       $.ajax({ 
        url: '<?php echo SITEURL; ?>/fullcalendar/add_events.php', 
        data: 'title=' + copiedEventObject.title + '&start=' + start + '&end=' + end + "&backgroundColor=" + copiedEventObject.backgroundColor + '&creator=<?php print_r($_SESSION["uid"]); ?>', 
        type: "POST", 
        success: function (response) { 
         console.log(response); 
         $('#calendar').fullCalendar('refetchEvents'); 
        } 
       }); 
       if ($('#drop-remove').is(':checked')) { 
        $(this).remove(); 
       } 
      }, 
      editable: true, 
      defaultView: 'agendaWeek', 
      firstDay: 1, 
      handleWindowResize: true, 
      dragOpacity: 0.7, 
      allDayDefault: false, 
      events: "<?php echo SITEURL; ?>/fullcalendar/events.php?creator=<?php print_r($_SESSION['uid']); ?>", 
      timeFormat: 'HH:mm { - HH:mm}', 
      selectable: true, 
      selectHelper: true, 
      select: function (start, end, allDay) { 
       $(".popup").css({ 
        'display': 'block', 
         'opacity': '0' 
       }).animate({ 
        'opacity': '1', 
         'top': '45%' 
       }, 300); 
       $(".submitForm").click(function() { 
        var title = $(".title").val(); 
        if (title) { 
         start = $.fullCalendar.formatDate(new Date(start), "yyyy-MM-dd HH:mm:ss"); 
         end = $.fullCalendar.formatDate(new Date(end), "yyyy-MM-dd HH:mm:ss"); 
         $.ajax({ 
          url: '<?php echo SITEURL; ?>/fullcalendar/add_events.php', 
          data: 'title=' + title + '&start=' + start + '&end=' + end + '&creator=<?php print_r($_SESSION["uid"]); ?>', 
          type: "POST", 
          success: function (json) { 
           console.log(json); 
           $('#calendar').fullCalendar('refetchEvents'); 
          } 
         }); 
         console.log("start " + start + " end " + end); 
        } 
        calendar.fullCalendar('unselect'); 
        $(".popup").css({ 
         'display': 'block', 
          'opacity': '1' 
        }).animate({ 
         'opacity': '0', 
          'top': '55%', 
          'display': 'none' 
        }, 300); 
       }); 
       $(".exit").click(function() { 
        // clear all info, unselect events and... 
        $(".popup").css({ 
         'display': 'block', 
          'opacity': '1' 
        }).animate({ 
         'opacity': '0', 
          'top': '55%', 
          'display': 'none' 
        }, 300); 
       }); 
      }, 
      eventDrop: function (event, delta) { 
       start = $.fullCalendar.formatDate(event.start, "yyyy-MM-dd HH:mm:ss"); 
       end = $.fullCalendar.formatDate(event.end, "yyyy-MM-dd HH:mm:ss"); 
       $.ajax({ 
        url: '<?php echo SITEURL; ?>/fullcalendar/update_events.php', 
        data: 'title=' + event.title + '&start=' + start + '&end=' + end + '&id=' + event.id, 
        type: "POST", 
        success: function (response) { 
         console.log(response); 
        } 
       }); 
      }, 
      eventClick: function (event, jsEvent, view) { 
       if (confirm("Really delete event " + event.title + "with id " + event.id + "?")) { 
        $.ajax({ 
         url: "<?php echo SITEURL; ?>/fullcalendar/delete_event.php", 
         data: 'eid=' + event.id, 
         type: "POST", 
         success: function (response) { 
          console.log(response); 
          calendar.fullCalendar('removeEvents', event.id); 
         } 
        }); 
       } 
      }, 
      eventResize: function (event) { 
       start = $.fullCalendar.formatDate(event.start, "yyyy-MM-dd HH:mm:ss"); 
       end = $.fullCalendar.formatDate(event.end, "yyyy-MM-dd HH:mm:ss"); 
       $.ajax({ 
        url: '<?php echo SITEURL; ?>/fullcalendar/update_events.php', 
        data: 'title=' + event.title + '&start=' + start + '&end=' + end + '&id=' + event.id, 
        type: "POST", 
        success: function (response) { 
         console.log(response); 
        } 
       }); 
      }, 
     }); 
     $('#external-events div.external-event').each(function() { 
      var eventObject = { 
       title: $.trim($(this).text()), 
       backgroundColor: $.trim($(this).attr('bgc')) 
      }; 
      $(this).data('eventObject', eventObject); 
      $(this).draggable({ 
       zIndex: 999, 
       revert: true, 
       revertDuration: 0 
      }); 
     }); 
    }); 
+0

感謝您的答案,但與您的解決方案我仍然有同樣的問題...不工作... – Makromat

+0

你檢查演示提琴..在演示提琴它得到提交..wats錯誤在你的應用程序? – nik

+0

是提交,但嘗試添加下一個事件....後打開pupup有像從第一個已經添加的事件相同的數據,並添加功能不工作...... – Makromat