2012-03-24 6 views
2

캘린더의 데이터가 포함 된 XML 파일이 있습니다. AJAX를 사용하여 일정에 동적으로 이벤트를로드하려고합니다. "afspraak"(4 개)이라는 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은 네 번째 이벤트 만 포함 할 수 있습니까? 이 문제를 처리하려면 alert (xml)을 processXML()의 첫 번째 줄에 넣습니다.

+0

이미 agendaSaver.php를 테스트했습니다. 브라우저에서 실행하면 http://dimitrisnijder.nl/files/agenda.xml과 같은 전체 XML 문서가 표시됩니다. – dimitri010

+0

예를 들어, 월 01을 통과하면 januari)를 agendaSaver.php에 보내면 'januari'의 두 이벤트가 반환됩니까? processXML 내부의 조건부 테스트 전후에 alert를 배치 했습니까? alert ('Maand :'+ maand) : 조건이 실행되는지 확인 하시겠습니까? – Stefan

+0

maand는 0 (processXML에서) 대신 'januari'와 같습니다. 내 생각에 monthLabels 배열에서 주어진 이름의 달을 반환하려면 일종의 배열 indexOf() 메서드를 사용해야한다. – Stefan

관련 문제