FullCalendar获取自定义属性值,更新事件属性,提供JSON,AJAX帖子和JAVA servlet

时间:2017-07-04 09:48:42

标签: jquery json ajax servlets fullcalendar

我在完成配置FullCalendar和与数据库通信时遇到了一些问题。

在stackoverflow和其他地方阅读了大量的文档和帖子之后,我仍然遇到了我的主题标题中提到的问题。

我在Apache Tomcat上使用JAVA Web应用程序处理项目并成功配置了FullCalendar。

1。如何获取自定义变量appid以制作ajax $ .post()

在使用以下方法加载.JSP页面之前,我确实使用以下绑定对我的一个视图提供了带有值的日历。

//More Code
events: ${appointments} 
//More Code

数据样本:

    [
    {"title":"10","start":"2017-07-05T13:30:00","backgroundColor":"#009900"},{"title":"11","start":"2017-07-05T12:00:00","backgroundColor":"#009900"}
    ]

2。完整日历无法获取JSON

其次,在我的另一个观点中,通过ajax帖子,我从SQLServer检索我的事件。我以与上一个问题相同的方式格式化JSON,并使用以下方法通过doPost响应:

        response.setContentType("application/json");  // Set content type of the response so that jQuery knows what it can expect.
        response.setCharacterEncoding("UTF-8"); // You want world domination, huh?
        response.getWriter().write(json);

当我遇到FullCalendar的缺点时尝试通过数据变量输入日历时,“当我将数据手动粘贴到events.push()但不能自动粘贴时,我可以提供数据。

我读到了关于括号的这个问题。我已经检查了所有的东西超过半天,但没有看到成功。尽管在某些时候我设法只使用数据变量来提供日历,只要它包含一个事件。当我试图在保持正确格式的同时添加更多内容时,我反对出现问题(JSON保持与问题1相同的格式,根据我读过的帖子,这是正确的格式)

这是我对Servlet的Ajax Post请求:

            $.post("/AppointmentServlet",
                {
                    selecteddoctorid: selectedDoctorID //This is relevant to my 1st question
                },

                function (data, status) {
                    var events = [];

                    //events.push(data);

                    $('#calendar').fullCalendar('removeEventSource', events);
                    $('#calendar').fullCalendar('addEventSource', events);
                    $('#calendar').fullCalendar('refetchEvents');

                }).change();

3.在eventClick函数外部更新/删除事件失败

最后,在对数据库进行了一些更改后,我想更改已更改事件的一些属性,例如颜色。

当我尝试通过日历的eventClick功能更新事件时,一切正常并且事件已更新但是当我尝试更新ajax帖子的成功函数时,尽管我尝试过但我看到没有变化以下内容:

       function doSubmit() {
            $("#calendarModal").modal('hide');
            var title = $('#title').val();
            var eventId = $('#eventID').val();
            alert(eventId);
            var startTime = $('#startTime').val();

            $.post("/AppointmentServlet",
                {
                    appointmentid: appid
                },
                function (data, status) {
                alert(data);

                    $('#calendar').fullCalendar('updateEvent', eventid);


                }).change();
        }

当我尝试使用以下代码删除事件时,我也遇到了同样的问题:

                //This is part of an ajax post
                function (data, status) {
                    $('#calendar').fullCalendar('removeEvents', eventID);

                });

0 个答案:

没有答案