2010-06-16 4 views
1

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

Вот пример того, что мой 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); 
     } 
    }); 
     } 
    }); 
}); 

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

ответ

0

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

$.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.

0

Выше кода дал мне ошибку, поскольку «обратный вызов не является функцией».
я заменил эту линию -

events: function(start, end, callback) { 

к

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

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

Смежные вопросы