2009-08-16 8 views
2

xml에 데이터를로드하기위한 AJAX 호출이 있습니다.AJAX with Jquery 문제

JS 오류가 발생하지 않습니다. 이전과 마찬가지로 완료되지 않습니다. 올바르게 데이터를 호출하지 않는 것 같습니다.

전체 기능 루프에서 내가 잘못하고있는 것에 대한 의견이 있으십니까?

$.ajax({ 
    type: "GET", 
    url: "xml/classes.xml", 
    dataType: "XML", 
    beforeSend: function(){ 
    $('#classContainer').append("<p>Loading</p>");}, 
    complete: function() { 
    $(this).find('monday').each(function(){ 

      var $classdate = $(this); 
      var title = $classdate.find("class").attr('title'); 

      var level = $classdate.find("class").attr('classLevel'); 
      var time = $classdate.find("time").text(); 
      var duration = $classdate.find("time").attr("duration"); 
      var hourofday = $classdate.find("time").attr("hourofday"); 
      var location = $classdate.find("location").text(); 



      var Monhtml = '<div class="classBlock">'; 

      Monhtml += '<p class="title">' + title + '<span class="loadingPic" alt="Loading" /> ' + ' </p>'; 
      Monhtml += '<p class="infoBar"> <strong>Time:</strong>' + time + '<span class="hour">'+ hourofday +'</span><br>'+'<strong>Duration:</strong>' + duration +'&nbsp;Minutes <br>' + '<strong>Location:</strong>' + location + '<br><strong>Instructor:</strong> </p>'; 
      Monhtml += '<p class="description"> <span class="level">' + level + '</span></p>' ; 

      Monhtml += '</div>'; 


      $('#classContainer').append($(Monhtml)); 
     }); 
     } 
    }); 
}); 

는 완전한 변경 :

success: function(xml) { 
    $(xml) 

그리고로드, 무슨 차이?

답변

1

귀하는 완전한 기능 내에서 응답을 제공하지 않습니다. 이 시도 :

$.ajax({ 
    type: "GET", 
    url: "xml/classes.xml", 
    dataType: "XML", 
    beforeSend: function(){ 
    $('#classContainer').append("<p>Loading</p>");}, 
    complete: function(resp) { 
    $(resp).find('monday').each(function(){ 

      var $classdate = $(this); 
      var title = $classdate.find("class").attr('title'); 

      var level = $classdate.find("class").attr('classLevel'); 
       var time = $classdate.find("time").text(); 
       var duration = $classdate.find("time").attr("duration"); 
       var hourofday = $classdate.find("time").attr("hourofday"); 
       var location = $classdate.find("location").text(); 



      var Monhtml = '<div class="classBlock">'; 

      Monhtml += '<p class="title">' + title + '<span class="loadingPic" alt="Loading" /> ' + ' </p>'; 
       Monhtml += '<p class="infoBar"> <strong>Time:</strong>' + time + '<span class="hour">'+ hourofday +'</span><br>'+'<strong>Duration:</strong>' + duration +' Minutes <br>' + '<strong>Location:</strong>' + location + '<br><strong>Instructor:</strong> </p>'; 
       Monhtml += '<p class="description"> <span class="level">' + level + '</span></p>' ; 

      Monhtml += '</div>'; 


      $('#classContainer').append($(Monhtml)); 
     }); 
     } 
    }); 
}); 
+0

이것은 작동하지 않습니다. 데이터도 시도했습니다. – matthewb

+0

$ (resp) .find ... 대신 사용해보십시오. 내가 지금 완전히 아이폰에서 대답 할 수 없다. – karim79

+0

@mathewb - 지연에 대해 유감스럽게 생각하면, 일단 jQuery 객체에 래핑 된 응답은 jQuery 메서드를 호출 할 수 있다는 점이다. 내 대답에 마지막으로 언급 한 내용을 반영했습니다. – karim79

0

완벽한 콜백는 두 개의 인수를 전달됩니다. JQuery와 문서

함수에서

는 요청 완료 (성공 오류 후 콜백이 실행될) 때 호출된다. 이 함수는 두 개의 인수, 즉 XMLHttpRequest 객체와 요청 성공의 유형을 설명하는 문자열을 전달받습니다. 이것은 Ajax 이벤트입니다.

함수 (XMLHttpRequest, textStatus) { this; //이 아약스 요청에 대한 옵션 }