是否可以使用chartjs在Laravel中生成多个图表?如果可以请给出解决方案

问题描述 投票:0回答:1

我的刀片文件代码是:

@foreach ($radio_data as $data)
                            
                            <div style="text-align: center" class="row">
                                <div class="col-md-4 text-center" >
                                    <canvas id="myChart"></canvas>
                                </div>
                            </div>
                            
                                @php array_push($dataPoints, array("label"=> " $data->answer ", "y"=>  $data->num )); @endphp
    
                                
                                <p>{{ $data->answer }}: {{ $data->num }}</p>
    
                            @endforeach

我正在控制器中获取数据并将其发送到视图。

php laravel charts chart.js pie-chart
1个回答
0
投票

最后我用动态画布ID和更新功能做到了这一点。 这是我的代码:

<div style="text-align: center" class="row">
                            <div class="col-md-4 text-center" >
                                <canvas id="{{ $loop->index }}"></canvas>
                            </div>
                        </div>

                        
                        <script>
                          let {{ 'c'.$u }} =  new Chart(document.getElementById({{ $loop->index }}), {
                            type: 'pie',
                            data: {
                                labels:  [],
                                datasets: [{
                                    label: '# of Votes',
                                    data:  [],
                                    backgroundColor: [
                                        'rgba(255, 99, 132, 0.2)',
                                        'rgba(54, 162, 235, 0.2)',
                                        'rgba(255, 206, 86, 0.2)',
                                        'rgba(75, 192, 192, 0.2)',
                                        'rgba(153, 102, 255, 0.2)',
                                        'rgba(255, 159, 64, 0.2)'
                                    ],
                                    borderColor: [
                                        'rgba(255, 99, 132, 1)',
                                        'rgba(54, 162, 235, 1)',
                                        'rgba(255, 206, 86, 1)',
                                        'rgba(75, 192, 192, 1)',
                                        'rgba(153, 102, 255, 1)',
                                        'rgba(255, 159, 64, 1)'
                                    ],
                                    borderWidth: 1
                                }]
                            },
                            options: {
                                scales: {
                                    y: {
                                        beginAtZero: true
                                    }
                                }
                            }
                            });
                        </script>
                       
                        
                        @foreach ($radio_data as $data)

                        <script>  {{ 'c'.$u }}.data.labels.push('{{ $data->answer }}'); {{ 'c'.$u }}.data.datasets.forEach((dataset) => {
                            dataset.data.push({{ $data->num }});
                        });
                        {{ 'c'.$u }}.update(); </script>
© www.soinside.com 2019 - 2024. All rights reserved.