2017-10-08 1 views
0

XML 파일에서 변수를 읽으려면 다음 코드를 작성했습니다. 변수가 Highchart 그래프로 전달되지 않고 왜 그 이유가 확실하지 않습니다. 변수 대신 숫자를 삽입하면 그래프가 올바르게 작동합니다. .ajax를 사용하여 XML 읽기

답변

0

$(function() {})

<script> 
 

 
    $.ajax({ 
 
     type: "GET", 
 
     url: "data.xml", 
 
     dataType: "xml", 
 
     success: function(xml) { 
 
     $(xml).find('height').each(function(){ 
 
      var johnheight = $(this).find('john').text() 
 
      var mikeheight = $(this).find('mike').text() 
 
     }); 
 
     } 
 
    }); 
 
    
 
    $(function() { 
 
    var myChart = Highcharts.chart('graph', { 
 
     chart: { 
 
      type: 'bar' 
 
     }, 
 
     title: { 
 
      text: null 
 
     }, 
 
     xAxis: { 
 
     categories: [''], 
 
     }, 
 
     yAxis: { 
 
      title: { 
 
       text: null 
 
      } 
 
     }, 
 
     series: [{ 
 
      name: 'John', 
 
      data: [johnheight] 
 
     }, { 
 
      name: 'Mike', 
 
      data: [mikeheight] 
 
     }] 
 
    }); 
 
    }); 
 
    </script>

$.ajax() 전화를 기다리고하지 않고 변수는 .each() 내에서 정의된다. 당신은 내가 $ .holdReady 방법에 대해 알고 당신의 대답은 이제 의미가 .each()

$.holdReady(true); 

var johnheight = mikeheight = void 0; 

$.ajax({ 
     type: "GET", 
     url: "data.xml", 
     dataType: "xml", 
     success: function(xml) { 
     $(xml).find('height').each(function(){ 
      johnheight = $(this).find('john').text(); 
      mikeheight = $(this).find('mike').text(); 
      return false; 
     }); 
     $.holdReady(false); 
     } 
    }); 

$(function() { 
    var myChart = Highcharts.chart('graph', { 
     chart: { 
      type: 'bar' 
     }, 
     title: { 
      text: null 
     }, 
     xAxis: { 
     categories: [''], 
     }, 
     yAxis: { 
      title: { 
       text: null 
      } 
     }, 
     series: [{ 
      name: 'John', 
      data: [johnheight] 
     }, { 
      name: 'Mike', 
      data: [mikeheight] 
     }] 
    }); 
    }); 
+0

내에서 변수를 $.ajax()success 기능을 기다리고 및 기능을 선택적으로 window이나 다른 물체에 호출하기 전에 변수를 선언하고 정의하는 $.holdReady()을 사용할 수 있습니다 . 그러나 변수가 여전히 차트에 전달되지 않았기 때문에 내 코드의 다른 부분에서 실수가 있다고 생각합니다. 사실 차트는 .ajax 코드를 기반으로 전혀로드되지 않습니다. –

+0

'하이 차트 '가 정의 되었습니까? 'console'에 오류가 기록되어 있습니까? – guest271314

+0

예, Highcharts .ajax 코드없이 잘 작동합니다. 찾을 수없는 ajaxgetdata.js를 찾고 있습니다. 나는 그것에 익숙하지 않다. –