Javascript 数据加载器amchart v3中的循环

Javascript 数据加载器amchart v3中的循环,javascript,php,jquery,codeigniter,amcharts,Javascript,Php,Jquery,Codeigniter,Amcharts,我有一个数据数组,例如,我的HTML视图中有3个Cardview 每个Cardview都有自己的数据,尤其是在显示图表时 我已经可以获取循环中的数据,并且已经可以获取每个图表的值,但是当我运行它时,只有一个图表正在加载,另外两个Cardview没有加载 这是我的循环和代码 for(i=0; i<chart.length;i++){ ///Assume that it has a length of 3 //Single view AmCharts.mak

我有一个数据数组,例如,我的HTML视图中有3个Cardview

每个Cardview都有自己的数据,尤其是在显示图表时

我已经可以获取循环中的数据,并且已经可以获取每个图表的值,但是当我运行它时,只有一个图表正在加载,另外两个Cardview没有加载

这是我的循环和代码

  for(i=0; i<chart.length;i++){ ///Assume that it has a length of 3
        //Single view
        AmCharts.makeChart("chartdiv", {
            type: "serial",
            theme: "light",
            marginRight: 40,
            marginLeft: 40,
            autoMarginOffset: 20,
            mouseWheelZoomEnabled: true,
            dataDateFormat: "YYYY-MM-DD",
            dataLoader: {
                url: url/?id=charr[i].id,
                format: "json"
            },
            categoryField: "date",
            rotate: false, 
            categoryAxis: {
                gridPosition: "start",
                axisColor: "#DADADA",
            },
            valueAxes: [{
                id: "v1",
                axisAlpha: 0,
                position: "left",
                ignoreAxisWidth: true
            }],
            graphs: [{
                id: "g1",
                fillAlphas: 0.5,
                balloon: {
                    borderThickness: 3,
                    horizontalPadding: 17,
                    offsetX: 50,
                    offsetY: 8
                },
                bullet: "round",
                bulletBorderAlpha: 1,
                bulletColor: "#FFFFFF",
                bulletSize: 5,
                hideBulletsCount: 50,
                lineColor: "#2AB4C0",
                lineThickness: 2,
                title: "Total",
                useLineColorForBulletBorder: true,
                valueField: "total",
                balloonText: "[[title]] [[date]]:<b>[[total]]</b>"
            }],
            chartScrollbar: {
                graph: "g1",
                oppositeAxis: false,
                offset: 30,
                scrollbarHeight: 80,
                backgroundAlpha: 0,
                selectedBackgroundAlpha: 0.1,
                selectedBackgroundColor: "#888888",
                graphFillAlpha: 0,
                graphLineAlpha: 0.5,
                selectedGraphFillAlpha: 0,
                selectedGraphLineAlpha: 1,
                autoGridCount: true,
                color: "#AAAAAA"
            },
            chartCursor: {
                pan: true,
                valueLineEnabled: true,
                valueLineBalloonEnabled: true,
                cursorAlpha: 1,
                cursorColor: "#258cbb",
                limitToGraph: "g1",
                valueLineAlpha: 0.2,
                valueZoomable: true
            },
            valueScrollbar: {
                oppositeAxis: false,
                offset: 50,
                scrollbarHeight: 10
            },

            "categoryAxis": {
                labelRotation: 90,
                "wrap": true,
                "parseDates": false,
                "dashLength": 1,
                "minorGridEnabled": true,
            },
            export: {
                enabled: true
            }
        });
    }
我已经可以得到3个图表的响应,但不是为第一个Cardview加载图表的第一个响应

[0]
[1]
[2]

,在第一个Cardview上显示的值是[2]元素,而不是第一个元素,我不知道该怎么办,我在Amchart中遇到了这个循环。

您需要为不同的图表分配不同的ID。当前代码在循环中运行了3次,但每次都将图表分配给
chartdiv

您需要有3个Div,如下所示:

<div id="chartdiv0" style="width: 640px; height: 400px;"></div>
<div id="chartdiv1" style="width: 640px; height: 400px;"></div>
<div id="chartdiv1" style="width: 640px; height: 400px;"></div>

然后在循环内的JS代码中,您需要将图表分配给正确的div

  for(i=0; i<chart.length;i++){ ///Assume that it has a length of 3
        //Single view
        AmCharts.makeChart("chartdiv" + i , { //Notice i is appended to reference the div.
(i=0;i)的

  for(i=0; i<chart.length;i++){ ///Assume that it has a length of 3
        //Single view
        AmCharts.makeChart("chartdiv" + i , { //Notice i is appended to reference the div.