2016-09-16 146 views
0

我试图渲染完整的日历,并且我希望每个单元格都根据包含我的数组的不同颜色包含给定月份的每一天的颜色。 我在杰森得到这个数组。 例如“json_backgrundColor [1] ='红色'” (1是月份的日期日期编号。possibale数组键范围1-30/31)。fullcalendar渲染:在JS中获取当前单元格的整数,然后将其用作数组键值

这里是杰森的数组e.g:

{"1":"green","2":"blue","3":"blue","4":"yellow","5":"yellow","6":"yellow","7":"yellow","8":"yellow","9":"blue","10":"blue","11":"yellow","12":"yellow","13":"yellow","14":"yellow","15":"yellow","16":"blue","17":"blue","18":"yellow","19":"yellow","20":"yellow","21":"yellow","22":"yellow","23":"blue","24":"green","25":"red","26":"red","27":"green","28":"green","29":"green","30":"green","31":"green"} 

我的第一个问题是,我似乎无法获得给定小区天的数量在JS的整数(1-31)。

这里是代码(PHP,同时呼应爵士):`

for ($i = 1; $i <= 12; $i++) { 
    $month = $i - 1; 
    $json_array_for_fullCalendar[$i] = self::convert_events_to_json_for_full_calendar($fullCalendarMonth[$i],$_POST['display_Language']); 
    echo "<div id='calendar$i'></div> 
    <script> 
    var json = $json_array_for_fullCalendar[$i]; 
      var JsMonth = $month; 
      var JsYear = $year; 
      var json_backgrundColor = $JsonMonthBackgroudCell[$i]; 
      $('#calendar$i').fullCalendar({ 

    var moment = $('#calendar$i').fullCalendar('getDate'); 
      var cellDate = moment.format('d'); 
      events: json, 
      fixedWeekCount: false, 
      defaultDate: new Date(JsYear, JsMonth, 1), 
      dayRender: function (date, cell) { 
      cell.css('background-color', json_backgrundColor[cellDate]) 
      }, 
    }); 


    </script>"; } 

此代码甚至不呈现完整的日历(这是我seconed问题)。 我的seconed问题是,当我尝试获取js变量中的数组键时,我很难渲染完整的日历。

例如用于seconed问题:当即时通讯不使用 一个变量和我使用的整数insted的:

dayRender: function (date, cell) { 
      cell.css('background-color', json_backgrundColor[1]) 
      }, 

和时,即时通讯滴速从码本行:

var moment = $('#calendar$i').fullCalendar('getDate'); 
       var cellDate = moment.format('d'); 

的完整的日历渲染没有任何问题。

我有点新与通信PHP和JS ..我尝试找到一个解决方案,我自己很长一段时间。

有什么建议吗? 谢谢!

回答

0

看看这里 http://jsfiddle.net/z8Jfx/7/ 并从那里开始。

变量$日历= $( '#日历')fullCalendar({ 头:{ 左:“上一个,下一个今天, 中心: '标题', 权: '一个月,basicWeek,basicDay' },

defaultView: 'month', 

dayRender: function (date, cell) { 

    var today = new Date(); 
    var end = new Date(); 
    end.setDate(today.getDate()+7); 

    if (date.getDate() === today.getDate()) { 
     cell.css("background-color", "red"); 
    } 

    if(date > today && date <= end) { 
     cell.css("background-color", "yellow"); 
    } 

} 

});

+0

感谢您的回答。我根据你的代码尝试了两个不同的选项,但它们都不工作(但日历确实呈现):1:“var day = date.getDate(); cell.css('background-color',json_backgrundColor [day]) },“2.”dayRender:函数(日期,单元格)cell.css('background-color',json_backgrundColor [date]) },“ – codingnighter2000

+0

HI。我仍然需要帮助:(可以有人对此有另一种见解? – codingnighter2000

相关问题