1

我正在构建一个应用程序,我在其中使用著名的 fullCalendar。现在我需要使用数据库中存在的值来填充我的日历。我正在尝试使用 AJAX 调用来做到这一点。但它不工作。任何帮助,将不胜感激。

这是我的 jsp 。我用来显示我的日历的那个。

    <!DOCTYPE html>
<html>
<head>
<link href='css/fullcalendar.css' rel='stylesheet' />
<link href='css/fullcalendar.print.css' rel='stylesheet' media='print' />
<script src='js/jquery.min.js'></script>
<script src='js/jquery-ui.custom.min.js'></script>
<script src='js/fullcalendar.min.js'></script>
<link href="jquery-ui-1.10.0.custom.css" rel="stylesheet" type="text/css" media = "all"/>
<link rel='stylesheet' type='text/css' href='cssdata/fullcalendar.css' />
<script src="js/jquery-1.9.0.js"></script>
<script src="js/jquery-ui-1.10.0.custom.min.js"></script>
<script type='text/javascript' src='js/fullcalendar.js'></script>
<pre>
<script>

$(document).ready(function() {
    getEvents();
        var date = new Date();
        var d = date.getDate();
        var m = date.getMonth();
        var y = date.getFullYear();
        $('#calendar').fullCalendar({
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,basicWeek,basicDay'
            },
            editable: true,
            events: [ getEvents()
                        /* {
                    title: 'All Day Event',
                    start: new Date(y, m, 1)
                }, */
            ] 
        });

    });

    function getEvents(){
        alert("hi");
        $.post("http://localhost:8080/S360Portal/eventAjax.action", {},
          function(data){
            alert("Hello");
            alert(data);
          });
    }
</script>
<style>
    body {
        margin-top: 40px;
        text-align: center;
        font-size: 14px;
        font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
        }

    #calendar {
        width: 900px;
        margin: 0 auto;
        }

</style>
</head>
<body>
<div id='calendar'></div>
</body>
</html>
4

1 回答 1

3

尝试使用eventSources而不是事件,考虑到您的函数实际上是返回任何事件。为什么不使用$.Ajax({})代替$.post?它会让你的生活更轻松。

这是我如何做的一个例子:

事件源数组。

var sources = {
    sourceone: {
        url: ajaxcallURL(),
        type: 'POST',
        data: { 'year': y },
        cache: false,       //this is optional
        color: '#6C92A8',   //this is optional
        textColor: 'white'  //this is optional
    }
}

Fullcalendar通话中,我有这个:

var calendar = $('#calendar').fullCalendar({
...
eventSources: [sources.sourceone],
...
});

这对我有用,请注意我正在返回 JSON,因此如果您返回 XML,例如,您将不得不迭代 XML。

此外,如果您的事件返回的日期与接受的日期不同,它们将不会映射到日历中,( yyyy-mm-dd ) 有效。

祝你好运

于 2013-10-24T08:20:53.120 回答