получить выбранное значение из первого графика в динамический второй график | Динамические диаграммы Apexchart

#dynamic #apex #apexcharts

Вопрос:

проблема, с которой я сталкиваюсь , заключается в том , что когда я заканчиваю 2-ю диаграмму , например » chart.render ()», 2-я диаграмма получает значение, которое я выбрал на первой диаграмме, но когда я нажимаю на другое значение на первой диаграмме, вместо обновления 2-го div диаграммы, он создает другой div по вертикали.

вот моя карта. я получаю значение от элемента управления в диаграмме.

         var app = @json($newval);
        var options = {
            series: app,
            chart: {
                events: {dataPointSelection:function (event, chartContext, config) {
                       var value= config.w.config.series[config.dataPointIndex]
                        $( "#chart2" ).load(window.location.href   " #chart2" );
                        secondchart(value);

                    }
                },
                width: 380,
                type: 'donut',

            },
            dataLabels: {
                enabled: false
            },
            responsive: [{
                breakpoint: 480,
                options: {
                    chart: {
                        width: 200
                    },
                    legend: {
                        show: false
                    }
                }
            }],
            legend: {
                position: 'right',
                offsetY: 0,
                height: 230,
            }
        };

        var chart = new ApexCharts(document.querySelector("#chart1"), options);
        chart.render();

//second chart starts...

        function secondchart(value) {
//in this console.log im getting correct value 
            console.log(value)
            var options = {
                series: [{
                    data: [value]
                }],
                chart: {
                    type: 'bar',
                    height: 350
                },
                plotOptions: {
                    bar: {
                        borderRadius: 4,
                        horizontal: true,
                    }
                },
                dataLabels: {
                    enabled: false
                },
                xaxis: {
                    categories: ['South Korea', 'Canada', 'United Kingdom', 'Netherlands', 'Italy', 'France', 'Japan',
                        'United States', 'China', 'Germany'
                    ],
                }
            };

           
           chart.render()

        }

    </script>```
 

Ответ №1:

итак, вот код, что я хочу сделать, сделайте именно это,

  <script>
        var app = @json($newval);
        var options = {
            series: app,
            chart: {
                events: {
                    dataPointSelection: function (event, chartContext, config) {
                        var value = config.w.config.series[config.dataPointIndex]

                        secondchart(value);

                    }

                },
                width: 380,
                type: 'donut',

            },
            dataLabels: {
                enabled: false
            },
            responsive: [{
                breakpoint: 480,
                options: {
                    chart: {
                        width: 200
                    },
                    legend: {
                        show: false
                    }
                }
            }],
            legend: {
                position: 'right',
                offsetY: 0,
                height: 230,
            }
        };

        var chart = new ApexCharts(document.querySelector("#chart1"), options);
        chart.render();


        function secondchart(value) {

            var cat = @json($cat);
            var options = {

                series: [{
                    data: [value,value]
                }],
                chart: {
                    redrawOnParentResize: true,

                    type: 'bar',
                    height: 350
                },
                plotOptions: {
                    bar: {
                        borderRadius: 4,
                        horizontal: true,
                    }
                },
                dataLabels: {
                    enabled: false
                },
                xaxis: {
                    categories: [cat
                    ],
                }
            };
            // $( "#chart2" ).load(window.location.href   " #chart2" );


            var chart = new ApexCharts(document.querySelector("#chart2"), options);

            debugger
            if ($("#chart2") == null) {
                console.log( $("#chart2"));

                chart.render()
            } else {
                $("#chart2").empty();
               console.log( $("#chart2"));
                chart.render()
            }

        }


    </script>