代码之家  ›  专栏  ›  技术社区  ›  gillweb

使用php/mysql呈现事件?

  •  0
  • gillweb  · 技术社区  · 6 年前

    我正试图用PHP中的“while”命令将这个日历实现到我的站点中。我不知道JSON或Ajax,所以不确定这是我的选择。我现在有这个代码,但是它为每个事件呈现一个日历,而不是一个包含所有事件的日历。我理解为什么,因为我正在循环整个日历代码,但是是否有一种方法可以循环事件?

    <div class="widget">
        <div class="navbar">
            <div class="navbar-inner"><h6>Calendar</h6></div>
        </div>
        <div id="calendar" class="well"></div>
    </div>
    
    <?
        $query = "SELECT * FROM tevents";        
        $result = mysql_query($query) or die(mysql_error());
        // Print out result
        while($row = mysql_fetch_array($result)){
            $calname = $row['Event_Title'];
            $caldate = $row['Start_Date'];
            $calnotes = $row['Event_Details'];
            $caltime = $row['Event_Time'];
    ?>      
    
    <script>
    //===== Calendar =====//    
    $('#calendar').fullCalendar({
        header: {
            left: 'prev,next',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },
        editable: false,
        events: [
            {
                title: '<?=$calname?>',
                start: '<?=$caldate?>'
            },
        ]
    );
    </script>
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Roy Bogado    6 年前

    为事件创建JSON。

    $events = [];
    while($row = mysql_fetch_array($result)){
       $events[] = ['title' => $row['Event_Title'], 'start' => $row['Start_Date']];
    }
    

    然后,用 $events

    $('#calendar').fullCalendar({
                        header: {
                            left: 'prev,next',
                            center: 'title',
                            right: 'month,agendaWeek,agendaDay'
                        },
                        editable: false,
                        events: <?= json_encode($events) ?>
                    });