PHP - Agregar varias estadisticas Chart.js en una misma pagina

 
Vista:
sin imagen de perfil

Agregar varias estadisticas Chart.js en una misma pagina

Publicado por Matias (31 intervenciones) el 25/06/2019 16:05:20
Buen dia comunidad,
Trabajando en una web me vi obligado a utilizar estadísticas y para ello utilicé la librería de chart. El problema que tengo es que necesito que se muestren varias veces el mismo estilo de estadística y para ello utilice un foreach para que lo muestra cada vez que se carga un cuadro informativo nuevo. Pero solo me aparece un cuadro estadístico y con los valores del último en cargarse.
Creo que se debe al id que posee el código, pero viene incluido en la libreria si mal no me equivoco.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php foreach ($datos as $d){
<div id="canvas-holder" style="width:100%">
          <canvas id="chart-area"></canvas>
        </div>
        <script>
          var config = {
            type: 'doughnut',
            data: {
              datasets: [{
                data:[
                  <?php foreach ($estadistica1 as $s){
                    echo $s['p'];?>,<?php echo $s['s'];?>,<?php echo $s['f'];}?>],
 
                backgroundColor: [
                  "rgba(15,255,0)",
                  "rgba(255,243,0)",
                  "rgba(255,0,0)",
                ],
                label: 'Dataset 1'
              }],
              labels: ['dato1', 'dato2', 'dato3'],
            },
            options: {
            }
          };
 
          window.onload = function() {
            var ctx = document.getElementById('chart-area').getContext('2d');
            window.myPie = new Chart(ctx, config);
          };
 
          var colorNames = Object.keys(window.chartColors);
          document.getElementById('addDataset').addEventListener('click', function() {
            var newDataset = {
              backgroundColor: [],
              data: [],
              label: 'New dataset ' + config.data.datasets.length,
            };
 
            config.data.datasets.push(newDataset);
            window.myPie.update();
          });
 
        </script>
}?>

Si alguien sabe como puedo corregir para que me aparezcan varias veces los gráficos lo agradeceria!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Agregar varias estadisticas Chart.js en una misma pagina

Publicado por Carlos Daniel (2 intervenciones) el 12/02/2020 22:58:44
Hola Matias, casualmente tengo el mismo problema, has encontrado la forma de resolverlo, muchas gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 1.490
Plata
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Agregar varias estadisticas Chart.js en una misma pagina

Publicado por Julio (484 intervenciones) el 12/02/2020 23:50:53
Hola.

Estáis usando el mismo ID, tanto canvas-holder como chart-area cada vez que pasa el foreach. Por tanto, cuando el script tira a dibujar el gráfico, lo pinta siempre en esos IDs, que son siempre los mismos y, por tanto, por eso os lo estará machacando.

Debéis diferenciar los IDs en cada pasada. Ponerle un $index que vaya contando en qué iteración del foreach estáis y que el ID sea ese nombre más el índice en cada momento.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Agregar varias estadisticas Chart.js en una misma pagina

Publicado por Carlos Daniel (2 intervenciones) el 12/02/2020 23:56:05
Muchas gracias por tu respuesta, voy a probar la solución
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar