承诺不会在FullCalendar上呈现事件Javascript JSON

时间:2016-10-19 15:38:44

标签: jquery json events fullcalendar

我知道这个话题可能很无聊,但我似乎无法找到问题的答案。而正在发生的事情是,当我使用Promises时,我无法在FullCalendar中呈现事件。我不正确地使用它们吗?

请查看下面的代码,

$.getScript('http://arshaw.com/js/fullcalendar-1.6.4/fullcalendar/fullcalendar.min.js',function(){

var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();

function getData(){
    var prom = new Promise(function(fulfilled, rejected){
        $.ajax({
            url: "control.php",
            type: "GET",
            data: "function=XML",
            success: function(response){
                fulfilled(response);
            },
            error: function(error){
                rejected(error);
            }
        });

    });
    return prom;

}

getData().then(assignData,errorHandlingData);

function assignData(variable){
    $('#cal').fullCalendar({
        header: {
            left: 'prev,next,today',
            right: 'today,prev,next',
            center: 'title'},
        editable: false,
        events: variable,
        height: $(window).height() - 200
    });

    $('#source-modal').on('shown.bs.modal', function () {
        $("#cal").fullCalendar('render');
    });
}

function errorHandlingData(variable){
    alert('Error Handling the data', variable);
    console.log('Error Handling the data', variable);
}
});

如果我在这个assignData()声明之后放置一个alert(),我可以看到数据,但它没有被分配给事件,因此它们不会被渲染。

非常感谢您对此主题的帮助。

1 个答案:

答案 0 :(得分:1)

我找到了自己问题的答案,将代码更改为不同的代码。

<强> JAVASCRIPT

$.getScript('http://arshaw.com/js/fullcalendar-1.6.4/fullcalendar/fullcalendar.min.js',function(){

  var date = new Date();
  var d = date.getDate();
  var m = date.getMonth();
  var y = date.getFullYear();

  $('#cal').fullCalendar({
      header: {
          left: 'prev,next,today',
          right: 'today,prev,next',
          center: 'title'},
      events: '/TRTalpha/main/control/feed.php',
      editable: false,
      height: $(window).height() - 200
  });

  $('#source-modal').on('shown.bs.modal', function () {
      $("#cal").fullCalendar('render');
  });


});

<强> PHP

$result = $model->getAllReservationsUser($_SESSION['eNumber']);
echo json_encode($result);

<强>的MySQL

Select rs.idReserv as 'id', rs.date as 'start',
CONCAT(rt.name,', ',rt.time) as 'title' 
FROM reservation rs inner join routes rt on rs.fk_route = rt.id_route
WHERE eNum = penum;

我更改了我的存储过程以检索具有不同标头的信息,这样当我将数据编码为JSON时,这将符合FullCalendar的标准。我知道这会消耗资源,但是在MySQL中更改查询我可以在6个月的时间内获得数据。