fullcalendar 관련 문의드립니다.

fullcalendar 관련 문의드립니다.

QA

fullcalendar 관련 문의드립니다.

본문

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

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

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

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

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

 

 

<?php 
$sel_mon = sprintf("%02d",$month);
// $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";
$query = "SELECT * FROM lms_class ORDER BY idx ASC";
$result = sql_query($query);
$aryData = array();
while($row = sql_fetch_array($result))
{
    $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
        }";
}
?>
 

<script>
$(document).ready(function () {
    var calendar = $('#calendar').fullCalendar({
        editable: true,
    //    events: 'read_class.php',

        defaultDate: '<?= $year."-".$month?>',
        events: [
        <?= implode(",", $aryData) ?>  
          ],
 
        header:{
         left:'prev,next today',
         center:'title',
         right:'month,agendaWeek,agendaDay'
        },
        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");
                        }
                    }
                });
            }
        }
    });
});
function displayMessage(message) {
        $(".response").html("<div class='success'>"+message+"</div>");
    setInterval(function() { $(".success").fadeOut(); }, 1000);
}
</script>
 

 

1888943420_1645402947.0855.png

이 질문에 댓글 쓰기 :

답변 1

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

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


<?php
$sel_mon = sprintf("%02d",$month);
// $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";
$query = "SELECT * FROM lms_class ORDER BY idx ASC";
$result = sql_query($query);
$aryData = array();
while($row = sql_fetch_array($result))
{
    for($i=strtotime($row["start_date"]); $i<=strtotime($row["end_date"]); $i+=86400) {
        if(date('w',$i) == "해당요일") {
            $aryData[] = "{
                title:'".$row["title"]."',
                start:'".date("Y-m-d", $i)."',
                end:'".date("Y-m-d", $i)."',
                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
                }";
        }
    }
}
?>
답변을 작성하시기 전에 로그인 해주세요.
전체 85
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT