【问题标题】:MySQL, JSON and FullcalendarMySQL、JSON 和 Fullcalendar
【发布时间】:2015-02-20 12:58:14
【问题描述】:

我正在努力将 MySQL 事件集成到 Fullcalendar 中。

我已经阅读了很多指南/帖子,但我无法从 json 脚本导入事件。 现在,如果我将“myfeed.php”的 JSON 结果粘贴到 fullcalendar 中,我的日历可以正常工作并且它包含所有事件。如果我将 fullcalendar 链接到 myfeed.php,则日历为空。我还尝试将我的日历链接到 fullcalendar 的“get-events.php”(应该与 myfeed.php 一起使用),但日历始终为空。 :/

这是我的完整日历

$(document).ready(function() {

          $('#calendar').fullCalendar({
              header: {
                  left: 'prev,next today',
                  center: 'title',
                  right: 'month,agendaWeek,agendaDay'
              },
              editable: true,
              eventLimit: true, // allow "more" link when too many events
              events: {
                  url: 'fullcalendar/php/get-events.php',
                  //url: 'fullcalendar/myfeed.php',
                  error: function() {
                      $('#script-warning').show();
                  }
              },
              loading: function(bool) {
                  $('#loading').toggle(bool);
              }
          });

      });

这是 myfeed.php 的结果

[{“id”:”1″,”title”:”allenamentosimone”,”allDay”:”false”,”start”:”1423036800″,”end”:”1423044000″,”url”:”pippo”},
{“id”:”2″,”title”:”allenamentodue”,”allDay”:”true”,”start”:”1423310400″,”end”:”1423335600″,”url”:”pluto”}]

myfeed.phpvisible on pastebin (对于站点 jsonformatter,结果是有效的 json,但文件不是有效的 json)。

有什么建议吗?


更新

我已将活动网址更改为: url: 'fullcalendar/myfeed.php'

另外,我在 YYYY-MM-DD HH:II:SS 中更改了我的 json 的日期格式,现在我可以在全日历上查看我的事件。但是我在全天模式下看到所有事件:/

这是新的 json 返回:

[
{"id":"1","title":"allenamentosimone","allDay":"false","start":"2015-02-04 09:00:00","end":"2015-02-04 11:00:00","url":"pippo"},
{"id":"2","title":"allenamentodue","allDay":"true","start":"2015-02-07 13:00:00","end":"2015-02-07 20:00:00","url":"pluto"}
]

更新 N.2

如果我在 allDay 部分不写任何内容,我的全日历就可以完美运行!这是最后一个json返回:

[
{"id":"1","title":"allenamentosimone","allDay":"","start":"2015-02-04 09:00:00","end":"2015-02-04 11:00:00","url":"pippo"},
{"id":"2","title":"allenamentodue","allDay":"true","start":"2015-02-07 13:00:00","end":"2015-02-07 20:00:00","url":"pluto"}
]

【问题讨论】:

  • 我认为这是因为 allDay 不是字符串,它是布尔值。不要在真/假周围使用引号。

标签: php jquery mysql json fullcalendar


【解决方案1】:

events 应该是从数据库提供的单个 url。

所以替换这样的事件:

events: 'fullcalendar/php/get-events.php',

如果浏览器检查器尝试访问数据库文件,请检查它。 在 Chrome 中,它使用 Ctrl+Shift+i 打开并导航到 Network 选项卡。数据库 URL 与您使用它的浏览器 URL 是相对的。

例如,如果您有页面testfullcalnedar.io/mycalendar 假设您的 php 位于testfullcalnedar.io/mycalendar/fullcalendar/php/get-events.php'

那么在脚本事件中,提要 URL 将是 fullcalendar/php/get-events.php/mycalendar/fullcalendar/php/get-events.php

说明 - 如果您以 / 开头的提要 URL,它将从您的域的根目录开始搜索它,否则它将相对于脚本所在的位置进行搜索。在我的示例中,脚本在 testfullcalnedar.io/mycalendar

下运行

【讨论】:

  • 好的,我已经更改了 url: url: 'fullcalendar/myfeed.php' (返回 json)另外,我已经更改了 YYYY-MM- 中我的 json 的日期格式DD HH:II:SS 现在我可以在 fullcalendar 上看到我的活动了。但是我在全天模式下看到所有事件:/
  • 好!我发现了问题。如果我在 allDay 部分不写任何东西,我的 fullcalendar 就可以完美运行!
  • allDay 用于更改默认事件设置。它单独应用于每个事件,并在事件未设置allDay 属性时优先。 Fullcalendar 有很好的文档。如果以上正确,请将其标记为已回答:)
猜你喜欢
  • 1970-01-01
  • 2015-03-25
  • 2018-11-19
  • 2013-03-26
  • 1970-01-01
  • 1970-01-01
  • 2017-09-19
  • 2013-07-14
  • 1970-01-01
相关资源
最近更新 更多