FullCalendar:JSON没有在FullCalendar中反思



我正在尝试将事件从外部PHP文件获取到完整日历视图上。我有时候问过一个类似的问题,但我仍在为此苦苦挣扎。

代码(JS):

<script>
$(document).ready(function() {
        $('#ccategory').change(function(){
            var id = $(this).val();
            var user = $('#current_user').val();
            var calendar = $('#calendar').fullCalendar({
events: {
    url: '<?php echo get_site_url(); ?>/get_calcat_calendar.php',
    data: function() { // a function that returns an object
        return {
            dynamic_value1: id,
            dynamic_value2: user
        };
    }              
                error: function() {
                  alert('There was an error while fetching events.');
                }                  
              }
            }); 
        });
    }); 
</script>

也将添加以下生成JSON文件的文件:

php代码:

while($row = mysqli_fetch_assoc($result)){
    $title = get_the_title($row['ID']);
    $url = get_permalink($row['ID']);
    $e = array();
    $e['title'] = $title;
    $e['url'] = $url;
    $e['start'] = $row['start_date'];
    $e['end'] = $row['end_date'];       
    $e['color'] = '#33cc33';
    array_push($events, $e);
}
echo json_encode($events);
exit();

这是我正在使用数据库中获取JSON的代码。任何帮助将不胜感激。谢谢你

要求更新:

[{"title":"Timeout72","url":"http://www.goawebsites.com/goacalendar/event/timeout72/","start":"2017-11-29","end":"2017-12-31","color":"#33cc33"}]

<div id='calendar'></div>

其他日历脚本:

<script>
$(document).ready(function() {
var user_id = $('#current_user').val(); 
$('#calendar').fullCalendar({
displayEventTime: false,
    events: [
        <?php foreach($result as $r) { ?>
            {
            <?php $title = get_the_title($r['event_id']); ?>
            <?php $url = get_permalink($r['event_id']); ?>
            title: '<?php echo html_entity_decode($title); ?>',
            start: '<?php echo $r['start_date'] ?>',
            end: '<?php echo $r['end_date']." 23:59:59" ?>',
            url: '<?php echo $url; ?>',
            color: '#33cc33'
            },
        <?php } ?>  
    ]   
});
});
</script>   

这应该更像您需要的东西:

1)当您第一次设置日历时,动态定义额外的"用户"one_answers"类别"数据参数(使用回调函数)。

2)在您的类别"更改"事件中,您现在需要做的就是简单地告诉日历以撤离事件。不需要像您一直在做的那样完全重新调整日历。

我看不到所有代码,包括您首先初始化日历的位置,因此这可能不是100%准确的,但这是一般的想法:

$(document).ready(function() {
  $('#calendar').fullCalendar({
    events: {
      url: '<?php echo get_site_url(); ?>/get_calcat_calendar.php',
      data: function() { //using a callback function here allows fullCalendar to fetch the latest values of these parameters every time it makes a new request to the server, rather than them being supplied statically at initialisation
        return {
            id: $('#ccategory').val(),
            user: $('#current_user').val()
        };
      },
      error: function() {
        alert('There was an error while fetching events.');
      }
    }
  });
  $('#ccategory').change(function() {
     //just tell the calendar re-fetch the events. It will automatically get the latest category ID value and send it to the server as a parameter
    $("#calendar").fullCalendar("refetchEvents");
  });
});

这是基于https:///fullcalendar.io/docs/event_data/events_json_json_feed/

的文档中"动态数据参数"部分中显示的模式。

相关内容

  • 没有找到相关文章