FullCalendar и события: функция - PullRequest
1 голос
/ 17 июня 2010

Я пытаюсь отобразить мои события из базы данных MySQL. Я использую функцию событий. Мой возвращаемый XML-файл довольно прост. Я посмотрел на все вопросы FullCalendar, и большинство из них рассказывают о JSON и указывают на документацию для JSON. Я не могу использовать JSON. Я должен идти XML. Можете ли вы сказать мне, где я ухожу.

Вот пример того, как выглядит мой xml:

<id><id>
<title>Grow Your Business on the Web</title> <br>
<start>2010-06-05T9:30</start>  <br>
<end>2010-06-05T12:30</end>  <br>
<className>O</className>  <br>
<url></url> 

Весь файл начинается с тега <event> и закрывается тегом </event>.

Мой jquery выглядит следующим образом:

$(document).ready(function() {

  $('#calendar').fullCalendar({
    height: 550,
    theme: true,
    header: {
            left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
        },
    editable: true,
    events: function(start, end, callback) {

    $.ajax({
        url: 'ncludeFiles/sbdp-cal-xml.php',
        dataType: 'xml',
        data: {
        // our hypothetical feed requires UNIX timestamps
        start: Math.round(start.getTime() / 1000),
        end: Math.round(end.getTime() / 1000)
        },
        success: function(doc) {

        var events = [];

            $(doc).find('event').each(function() {
                events.push({ 
                    title: $(this).attr('title'),
                    start: $(this).attr('start'),
                    end: $(this).attr('end'),
                    className: $(this).attr('className'),
                    url: $(this).attr('url')
                });
            });

            callback(events);
        }
    });
      }
  });
});

Буду признателен за любую помощь, которую вы мне можете оказать. Спасибо!

Ответы [ 2 ]

1 голос
/ 01 июня 2017

Выше код дал мне ошибку, так как "обратный вызов не является функцией".
Я заменил эту строку -

events: function(start, end, callback) {

до

events: function(start, end, timezone, callback) {

Это начало работать.

0 голосов
/ 21 июля 2010

Пример кода также не работает для меня.Попробуйте вместо этого:

$.ajax({
 url: 'pathto/myxmlfeed.php',
 data: "start="+Math.round(start.getTime() / 1000)+"&end="+Math.round(end.getTime() / 1000)+"&_rand="+Math.floor(Math.random()*100),
 success: function(doc) {
  var events = [];
  $(doc).find('event').each(function() {
       events.push({
        title: $(this).attr('title'),
        url: $(this).attr('url'),
        start: $(this).attr('start') // will be parsed
       });

      });

      callback(events);
     }
    });

На вашем myxmlfeed.php вы можете сделать $ _GET, чтобы получить дату начала и дату окончания, которые будут использоваться при запросе вашей БД.Структура XML должна выглядеть примерно так:

<xml>
<event id="1" title="first entry" url="http://www.google.com" start="2010-07-22" /> 
</xml>

Вам также нужно изменить jquery.js на версию 1.3.2, 1.4.2 не работает должным образом в IE8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...