2014-08-31 7 views
1

뭔가 떨어질 때 내 데이터베이스에서 데이터를 렌더링하기 위해 fullcalendar를 얻으려고합니다. 데이터가 아약스에 의해 올바르게 전달 된 것을 볼 수 있습니다. 하지만 콜백이 호출되면 오류 메시지가 나타납니다. 잡히지 않은 TypeError : 객체가 함수가 아닙니다.. 아래에서잡히지 않은 TypeError : 개체가 Fullcalendar의 함수가 아닙니다.

내 코드를 찾을 : 오류 메시지를 해결하기

drop: function (start, end, timezone, callback) { 
     var resource_id = $(this).attr('id'); 
     var id = resource_id.substring(resource_id.lastIndexOf('_') + 1, resource_id.length); 
     var events_uri = '/get_resource_events'; 
     $.ajax({ 
      url: resource_base_url() + events_uri, 
      data: { 
       id: id 
      }, 
      type: "GET", 
      dataType: 'json', 
      success: function(data) { 
       var events = []; 
       for (order in data) { 
        var allday_data = data[order].allday; 
        if (allday_data === 'true') { 
         allday_data = true; 
        } else { 
         allday_data = false; 
        }; 
        events.push({ 
         id: data[order].id, 
         title: [data[order].initials] + [data[order].last_name], 
         start: data[order].start, 
         end: data[order].end, 
         allDay: allday_data, 
         color: data[order].calendar_color 
        }); 
       }; 
       callback(events); 
       $('#calendar').fullCalendar('rerenderEvents'); 
      } 
     }); 
    } 

누구나 어떤 sugestions를? 아약스의 결과 아래

, 나는 당신이 설명 된 솔루션을 시도

[{"id":"136","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-05 09:00:00","end":"2014-08-05 13:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"138","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-04 09:00:00","end":"2014-08-04 13:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"139","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-07 07:30:00","end":"2014-08-07 11:30:00","allday":null,"calendar_color":"#00ffff"},{"id":"142","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-06 00:00:00","end":"0000-00-00 00:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"143","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-06 11:30:00","end":"2014-08-06 15:30:00","allday":null,"calendar_color":"#00ffff"},{"id":"155","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-10 09:00:00","end":"2014-08-10 13:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"170","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-28 10:00:00","end":"2014-08-28 15:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"171","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-26 08:00:00","end":"2014-08-26 12:30:00","allday":null,"calendar_color":"#00ffff"},{"id":"175","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-30 07:00:00","end":"2014-08-30 14:30:00","allday":null,"calendar_color":"#00ffff"},{"id":"183","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-29 07:30:00","end":"2014-08-29 13:00:00","allday":null,"calendar_color":"#00ffff"}] 

콜백,하지만 난 여전히 같은 오류 메시지 객체가 함수하지 않습니다 얻을. 아래에는 compleat JS 파일이 있습니다. 다른 제안 사항은 없습니까?

$(document).ready(function() { 

function resource_base_url() { 
    return base_url() + '/resource_controller/'; 
} 

/* initialize the calendar 
-----------------------------------------------------------------*/ 
$('#calendar').fullCalendar({ 
    firstDay: 1, // Sunday=0, Monday=1, Tuesday=2, etc. 
    aspectRatio: 2.5, 
    eventTextColor: 'black', 
    theme: true, // false, true 
    handleWindowResize: true, 
    editable: true, 
    droppable: true, // this allows things to be dropped onto the calendar !!! 
      // Determines which icons are displayed in buttons of the header when theming is on. 
    themeButtonIcons:{ // Check http://api.jqueryui.com/theming/icons/ for avalible icon names 
     prev: 'ui-icon ui-icon-circle-triangle-w', 
     next: 'ui-icon ui-icon-circle-triangle-e' 
    }, 
    header: { 
     left: 'prev,next today', 
     center: 'title', 
     right: 'month,agendaWeek,agendaDay' 
    },  
    //events: calendar_base_url() + '/events',   
    eventRender: function(event, element, view) { 
     if (event.allDay === 'true') { 
      event.allDay = true; 
     } else { 
      event.allDay = false; 
     } 
    }, 
    drop: function (start, end, timezone, callback) { 
     var resource_id = $(this).attr('id'); 
     var id = resource_id.substring(resource_id.lastIndexOf('_') + 1, resource_id.length); 
     var events_uri = '/get_resource_events'; 
     $.ajax({ 
      url: resource_base_url() + events_uri, 
      data: { 
       id: id 
      }, 
      type: "GET", 
      dataType: 'json', 
      success: function(data) { 
       $.each(data, function(key, val){ 
        var events = []; 
        var allday_data = val.allday; 
        if (allday_data === 'true') { 
         allday_data = true; 
        } else { 
         allday_data = false; 
        }; 
        events.push({ 
         id: val.id, 
         title: val.initials + val.last_name, 
         start: val.start, 
         end: val.end, 
         allDay: allday_data, 
         color: val.calendar_color 
        }); 
       callback(events); 
       $('#calendar').fullCalendar('rerenderEvents'); 
       }); 
      } 
     }); 
    }  
}); 

});

+1

우리가 콜백을 볼 수 출력입니까? –

+0

성공 콜백에서 'order'를 'var'로 선언해야합니다. – Pointy

+0

또한 "title"속성 - 두 개의 배열을 함께 추가합니까? 그것의 요점은 무엇입니까? – Pointy

답변

0

루프 물마루 json 개체를 수행하려고하면 각 기능에서 이와 같이하십시오. 는 당신이

 <script> 
     var events = new Array(); 
     </script> 

그리고 문서의 준비 기능의 모든 기능과 같이 윈도우의 전역 범위에서 이벤트를 넣어야의

도움이되기를 바랍니다. 여기

drop: function (start, end, timezone, callback) { 
    var resource_id = $(this).attr('id'); 
    var id = resource_id.substring(resource_id.lastIndexOf('_') + 1, resource_id.length); 
    var events_uri = '/get_resource_events'; 
    $.ajax({ 
     url: resource_base_url() + events_uri, 
     data: { 
      id: id 
     }, 
     type: "GET", 
     dataType: 'json', 
     success: function(data) { 
      $.each(data, function(key, val){ 
       var events = []; 

        var allday_data = val.allday; 
        if (allday_data === 'true') { 
         allday_data = true; 
        } else { 
         allday_data = false; 
        }; 
        events.push({ 
         id: val.id, 
         title: val.initials + val.last_name, 
         start: val.start, 
         end: val.end, 
         allDay: allday_data, 
         color: val.calendar_color 

        }); 

       callback(events); 
       $('#calendar').fullCalendar('rerenderEvents'); 
      )} 
      } 
    }); 
} 

작업 예 : 여기

var events = new Array(); 
$(document).ready(function(){ 

     var data = [{"id":"136","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-05 09:00:00","end":"2014-08-05 13:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"138","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-04 09:00:00","end":"2014-08-04 13:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"139","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-07 07:30:00","end":"2014-08-07 11:30:00","allday":null,"calendar_color":"#00ffff"},{"id":"142","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-06 00:00:00","end":"0000-00-00 00:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"143","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-06 11:30:00","end":"2014-08-06 15:30:00","allday":null,"calendar_color":"#00ffff"},{"id":"155","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-10 09:00:00","end":"2014-08-10 13:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"170","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-28 10:00:00","end":"2014-08-28 15:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"171","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-26 08:00:00","end":"2014-08-26 12:30:00","allday":null,"calendar_color":"#00ffff"},{"id":"175","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-30 07:00:00","end":"2014-08-30 14:30:00","allday":null,"calendar_color":"#00ffff"},{"id":"183","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-29 07:30:00","end":"2014-08-29 13:00:00","allday":null,"calendar_color":"#00ffff"}]; 

$.each(data, function(key, val){ 


       var allday_data = val.allday; 
       if (allday_data === 'true') { 
        allday_data = true; 
       } else { 
        allday_data = false; 
       }; 

       events.push({ 
        id: val.id, 
        title: [val.initials] + [val.last_name], 
        start: val.start, 
        end: val.end, 
        allDay: allday_data, 
        color: val.calendar_color 

       }); 

      }) 

     console.log(events); 
    }); 

[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object] 

    Object0: ObjectallDay: falsecolor: "#00ffff", end: "2014-08-05 13:00:00", id: "136", start: "2014-08-05 09:00:00", title: "M.H.Tjon-Sien-Fat"; 
관련 문제