테스트 사이트 - 개발 중인 베타 버전입니다

fullcalendar 관련 문의드립니다. 채택완료

꼴랑2 3년 전 조회 2,859

이미지 보시는 바와 같이 디비에서 데이터를 가져와 캘린더에서 뿌려주고 있습니다. 

현제 디비상에는 각 이벤트별로 요일데이터를 받아놨습니다. 

이벤트를 쭈욱 보여주는게 아니라 기간안에 해당 요일만 제목이 출력되게끔 하고자하는데,

검색등을 해봐도 없고 어떻게 해야할지 잘 모르곘습니다.;;;

도움 부탁드립니다. 감사합니다.   

 

 

</strong></p>

<p><?php 

$sel_mon = sprintf("%02d",$month);</p>

<p>// $query = "SELECT * FROM lms_class WHERE left(start_date,7) <= '".$year."-".$sel_mon."' and left(end_date,7) >= '".$year."-".$sel_mon."' ORDER BY idx ASC";</p>

<p>$query = "SELECT * FROM lms_class ORDER BY idx ASC";</p>

<p>$result = sql_query($query);</p>

<p>$aryData = array();

while($row = sql_fetch_array($result))

{</p>

<p>    $aryData[] = "{

        title:'".$row["title"]."',

        start:'".date("Y-m-d", strtotime($row["start_date"]))."',

        end:'".date("Y-m-d", strtotime($row["end_date"]))."',

        url:'".G5_BBS_URL."/board.php?bo_table={$bo_table}&year={$year}&month={$month}&wr_id={$row["wr_id"]}&sc_no={$sc_no}',

        allDay: false

        }";

}</p>

<p>?>

 </p>

<p>

<script>

$(document).ready(function () {

    var calendar = $('#calendar').fullCalendar({

        editable: true,

    //    events: 'read_class.php',</p>

<p>

        defaultDate: '<?= $year."-".$month?>',

        events: [

        <?= implode(",", $aryData) ?>  

          ],

 

        header:{

         left:'prev,next today',

         center:'title',

         right:'month,agendaWeek,agendaDay'

        },</p>

<p>        dayHeaderContent: function (date) {

          let weekList = ["일", "월", "화", "수", "목", "금", "토"];

          return weekList[date.dow];

        },

            

        selectable:true,

        selectHelper:true,

        select: function(start, end, allDay)

        {

         var title = prompt("Enter Event Title");

         if(title)

         {

          var start = $.fullCalendar.formatDate(start, "Y-MM-DD HH:mm:ss");

          var end = $.fullCalendar.formatDate(end, "Y-MM-DD HH:mm:ss");

          $.ajax({

           url:"insert.php",

           type:"POST",

           data:{title:title, start:start, end:end},

           success:function()

           {

            calendar.fullCalendar('refetchEvents');

            alert("Added Successfully");

           }

          })

         }

        },

        editable: true,

        eventDrop: function (event, delta) {

                    var start = $.fullCalendar.formatDate(event.start, "Y-MM-DD HH:mm:ss");

                    var end = $.fullCalendar.formatDate(event.end, "Y-MM-DD HH:mm:ss");

                    $.ajax({

                        url: 'edit-event.php',

                        data: 'title=' + event.title + '&start=' + start + '&end=' + end + '&id=' + event.id,

                        type: "POST",

                        success: function (response) {

                            displayMessage("Updated Successfully");

                        }

                    });

                },

        eventClick: function (event) {

            var deleteMsg = confirm("Do you really want to delete?");

            if (deleteMsg) {

                $.ajax({

                    type: "POST",

                    url: "delete-event.php",

                    data: "&id=" + event.id,

                    success: function (response) {

                        if(parseInt(response) > 0) {

                            $('#calendar').fullCalendar('removeEvents', event.id);

                            displayMessage("Deleted Successfully");

                        }

                    }

                });

            }

        }</p>

<p>    });

});</p>

<p>function displayMessage(message) {

        $(".response").html("<div class='success'>"+message+"</div>");

    setInterval(function() { $(".success").fadeOut(); }, 1000);

}

</script>

<strong>
 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
e
3년 전

시작일부터 종료일까지 하루씩 비교해서 해당 요일이면,

하루씩 표시를 해주면 됩니다.

</p>

<p><?php</p>

<p>$sel_mon = sprintf("%02d",$month);</p>

<p>// $query = "SELECT * FROM lms_class WHERE left(start_date,7) <= '".$year."-".$sel_mon."' and left(end_date,7) >= '".$year."-".$sel_mon."' ORDER BY idx ASC";</p>

<p>$query = "SELECT * FROM lms_class ORDER BY idx ASC";</p>

<p>$result = sql_query($query);</p>

<p>$aryData = array();</p>

<p>while($row = sql_fetch_array($result))</p>

<p>{</p>

<p>    for($i=strtotime($row["start_date"]); $i<=strtotime($row["end_date"]); $i+=86400) {</p>

<p>        if(date('w',$i) == "해당요일") {</p>

<p>            $aryData[] = "{</p>

<p>                title:'".$row["title"]."',</p>

<p>                start:'".date("Y-m-d", $i)."',</p>

<p>                end:'".date("Y-m-d", $i)."',</p>

<p>                url:'".G5_BBS_URL."/board.php?bo_table={$bo_table}&year={$year}&month={$month}&wr_id={$row["wr_id"]}&sc_no={$sc_no}',</p>

<p>                allDay: false</p>

<p>                }";</p>

<p>        }</p>

<p>    }</p>

<p>}</p>

<p>?></p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인