2012-03-24 82 views
2

我有一個XML文件,其中包含日曆的數據。我想使用AJAX將事件動態加載到日曆中。我想獲得名爲「afspraak」的XML元素(其中四個)。該XML文件可以在這裏看到:http://dimitrisnijder.nl/files/agenda.xml將事件加載到日曆中

我想,使用下面的代碼來執行:

function agendaLoad(){ 

    $(".title").html(monthLabels[thisMonth]+" "+thisYear); 


    $.get(
     "agendaSaver.php", 
     {month: thisMonth, 
     year: thisYear}, 
     processXML, 
     "xml" 
    ); 
} 

function processXML(xml) {  
$("agenda afspraak", xml).each(function() {  

    var dag = $(this).find("dag").text(); 
    var maand = $(this).find("maand").text();  
    var jaar = $(this).find("jaar").text(); 
    var onderwerp = $(this).find("onderwerp").text(); 
    var tijd = $(this).find("tijd").text(); 
    var beschrijving = $(this).find("beschrijving").text(); 

    if((maand == today.getMonth()+1) && (jaar == today.getFullYear())) { 

     $("#day"+dag).append('<div class="afspraak">'+onderwerp+'</div> <p class="beschrijving"><strong>'+tijd+' '+onderwerp+'</strong><br/>'+beschrijving+'</p>'); 
    } 
}); 
} 

這部分工作。該腳本會將第四個事件(「afspraak」)加載到議程中,並將其顯示在2012年3月25日。但該事件在每個月的第25天加載。前三個事件都沒有加載..

任何幫助嗎?提前致謝。

回答

0

您的processXML()函數乍一看似乎很好。那麼,是否可以通過agendaSaver.php返回的xml僅包含第四個事件?通過將警報(xml)放入processXML()的第一行來測試此問題。

+0

我已經測試了agendaSaver.php。如果我在瀏覽器中運行它,則會顯示整個XML文檔,與http://dimitrisnijder.nl/files/agenda.xml相同 – dimitri010 2012-03-24 12:55:23

+0

因此,您確定如果您傳遞了月01( januari)到agendaSaver.php,這兩個'januari'事件被返回?你是否在processXML中的條件測試之前和之後放置了一個警報,如下所示:alert('Maand:'+ maand)以確保條件觸發? – Stefan 2012-03-24 13:03:35

+0

maand等於'januari'而不是0(在processXML中)。我想,你必須使用某種數組的indexOf()方法,從monthLabels數組中返回給定名稱的月份。 – Stefan 2012-03-24 13:28:10