小编典典

高图表堆积的条形图数据无法通过javascript工作

ajax

这是为什么,我在绘制图表high
bart中的数据时遇到麻烦。我正在使用它,chart.series[i].addPoint(data[i]['total_check']);但是当我提醒alert(data[i]['total_check']);有值时,但是当我在条形图中绘制它时,它不会出现。我想知道我的代码是否以错误的方式?。这是我从barchart绘制点的代码:

function getbarseries(month) {
    $.ajax({
      url: siteurl+"patients_report/bardataclinic/"+month,
      type: "POST",
      dataType: "JSON",
        success: function(data) {
           for(var i in data) {
               chart.series[i].addPoint(data[i]['total_check']);
               //alert(data[i]['total_check']);
           }
        }
    });
}

我正在通过递归方式绘制图表,所以我代码的主要部分是:

function getbarxAxis() {
 $.ajax({
   url: siteurl+"patients_report/bardata_date",
   type: "POST",
   dataType: "JSON",
   success: function(data) {
     var categories = new Array();
     for (var i in data) {
       categories.push(data[i]["datemonths"]);
     }
    loadChart(categories);
    getallclinics();
    var arrayLength = categories.length;
    for(var loop = 0;loop<arrayLength;loop++) {
        getbarseries(categories[loop]);
    }

   }
 });
}

我正在制作动态条形图表,这就是为什么首先要查询loadChart(categories);类别后绘制类别(月份)的原因,

function loadChart(categories) {
   chart = Highcharts.chart('container', {
    chart: {
        type: 'bar'
    },
    title: {
        text: ''
    },
    xAxis: {
        categories: categories
    },
    yAxis: {
        min: 0,
        title: {
            text: 'Detailed patient per clinic'
        }
    },
    legend: {
        reversed: true
    },
    plotOptions: {
        series: {
            stacking: 'normal'
        }
    },
    plotOptions: {
            series: {
                stacking: 'normal'
            }
    }
});
}

在绘制类别之后,接下来是系列数据名称,在其中我还创建了一个新函数来查询数据库并绘制所有数据系列名称,名为:getallclinics();
getallclinics函数的完整代码的函数是这样的:

function getallclinics() {
   $.ajax ({
          url: siteurl+"patients_report/seriesclinics",
          type: "POST",
          async: false,
          dataType: "JSON",
          success: function(data) {
            for(var i in data) {
              chart.addSeries({
                  name: data[i]['clinic_name']
              });
            }
          }
   });
}

到诊所后,最后一部分是我遇到了麻烦,我要在其中绘制声明的系列名称中的数据,因此上面的代码getbarseries是我遇到麻烦的地方,在此处进行绘制chart.series[i].addPoint(data[i]['total_check']);

我的getbarseries的完整代码:

function getbarseries(month) {
    $.ajax({
      url: siteurl+"patients_report/bardataclinic/"+month,
      type: "POST",
      dataType: "JSON",
        success: function(data) {
           for(var i in data) {
               chart.series[i].addPoint(data[i]['total_check']);
               //alert(data[i]['total_check']);
           }
        }
    });
}

我每月从函数getbarseries(month)那里得到的结果是,我的月份得到了全面检查:这是控制台的结果,因为我只有两个返回的月份来自我的类​​别,所以我有两个getbarseries函数的递归循环

第一个递归循环: [{"clinic_name":"Clinic 1","total_check":"0"},{"clinic_name":"Clinic 2","total_check":"1"},{"clinic_name":"Clinic 3","total_check":"0"},{"clinic_name":"Clinic 4","total_check":"0"}]

第二个递归循环: [{"clinic_name":"Clinic 1","total_check":"2"},{"clinic_name":"Clinic 2","total_check":"0"},{"clinic_name":"Clinic 3","total_check":"0"},{"clinic_name":"Clinic 4","total_check":"0"}]


阅读 306

收藏
2020-07-26

共1个答案

小编典典

您的数据似乎是字符串,则需要将它们解析为数字。

您可以使用此方法:将参数转换为数字

function getbarseries(month) {
    $.ajax({
      url: siteurl+"patients_report/bardataclinic/"+month,
      type: "POST",
      dataType: "JSON",
        success: function(data) {
           for(var i in data) {
               chart.series[i].addPoint(Number(data[i]['total_check']));
           }
        }
    });
}
2020-07-26