2016-09-16 4 views
0

フルカレンダーをレンダリングしようとしていますが、各セルが含まれている鉱山の配列に従って異なる色になるようにしたい指定された月の各日の色。 私はこの配列をJasonで取得します。 "json_backgrundColor [1] = 'red'" (1は日付の月の日数、possibaleの配列キーの範囲は1〜30/31)。ここフルカラーレンダリング:JSで現在のセルの日の整数を取得し、それを配列キーとして使用

は、例えばのためのジェイソンの配列である:

{"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のJsをエコー間)である: `

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問題です)。 私の主張されている問題は、js変数で配列キーを取得しようとすると完全なカレンダーをレンダリングするのが難しいということです。

seconed問題の例: 変数を使用していないイムとiは整数を使用するには、insted:

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

とイムは、コードからこの行をdroping:

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

フルカレンダーを問題なくレンダリングされます。

私はPHPとJSのやりとりで少し新しくなりました。私はこの解決策を自分で長年探し求めました。

どのような提案ですか?感謝! ありがとう!

答えて

0

ここをクリック http://jsfiddle.net/z8Jfx/7/ ここからご覧ください。

のvar $カレンダー= $( '#カレンダー')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

答えに感謝します。私はあなたのコードに応じて2つの異なるオプションを試してみましたが、それらのどれもはうまくいきませんでした(ただしカレンダーはレンダリングしました):1: "var day = date.getDate(); cell.css( 'background-color'、json_backgrundColor [day]) }、 "2" dayRender:function(日付、セル){ cell.css( '背景色'、json_backgrundColor [日付]) }、 " – codingnighter2000

+0

HI。私はまだ助けが必要です:(誰かがこれについて別の洞察力を持つことができますか? – codingnighter2000

関連する問題