Si Si (impératrice)non, non, ...
Plusieurs raisons potentielles de voir apparaître cette erreur dont
• L'objet Chart est redéfini via un Chart = {}, comme suggéré par Watilin, mais même si c'est maladroit d'utiliser chart pour affecter un objet Chart, le doute a été levé.
• Le fichier chart.js n'est pas chargé
La dernière virgule, même si inutile, n'entraine plus d'erreur, au moins depuis IE8 si ma mémoire est bonne, au pire le dernier élément de l'objet crée est affecté comme null:null et donc non pris en compte.je donne un indice : ],}
sera vu comme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 var obj = { "un" : 1, "deux" : 2, } console.log( JSON.stringify(obj))
Pour finir, on peut relever pas mal de maladresse dans son code mais celui ci est tout à fait fonctionnel.{"un":1,"deux":2}
Alors pour lever toutes ambiguïtés, ce code fonctionnait dans le cas de l'affichage d'un seul graphique en suivant la documentation de Chart.js
Normalement le graphique est sensé etre codé comme ci-dessous :
J'ai juste adapté le code pour pouvoir créer un nombre indéfini de graphique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <canvas id="myChart" width="400" height="400"></canvas> <script> var ctx = document.getElementById("myChart"); var myChart = new Chart(ctx, { type: 'bar', data: { labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"], datasets: [{ label: '# of Votes', data: [12, 19, 3, 5, 2, 3], 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: { yAxes: [{ ticks: { beginAtZero:true } }] } } }); </script>
Dans ma page statistique de mon site j'avais auparavant 1 seul section, donc besoin que d'un graphique mais il s'avère qu'aujourd'hui je peux supprimer/ajouter des sections et donc des graphiques. Mais comme l'ajout est dynamique je ne pouvais me permettre de créer/supprimer à la main un graphique, j'ai donc cherché le moyen de dynamiser la création des variables ctx, j'ai donc utiliser un tableau. D'après vos précédentes remarques il semblerait que les objets soit des outils plus adapté. Mais visiblement ça ne fonctionne pas. Peut être que chartjs n'accepte pas les objets en paramètre mais les variables et les tableaux sont aussi des objets je ne vois donc pas pourquoi cela ne fonctionnerai pas, d'où le besoin de votre aide
Bon du coup,
grâce à vos conseils je me suis aperçu que mon site ne chargé plus le script chart.js depuis internet je l'ai donc téléchargé et ajouter une balise src.
l'erreur à maintenant changé il met :
mais là il devient compliqué de debug, le fichier chart.min.js étant completement ilisible, tout est sur 1 seul ligne
Lors de la phase de mise au point je déconseille de faire référence au fichier minifier justement pour ce manque de lisibilité.
Remplace dans ce cas https://cdnjs.cloudflare.com/ajax/li...2/Chart.min.js par https://cdnjs.cloudflare.com/ajax/li...2.7.2/Chart.js.
L'erreur apparaîtra un peu plus clairement, apparaît lecture de la source, comme quoi un de tes chart[name] = document.getElementById("myAreaChart" + j) est non défini.
Effectivement je pensais avoir enlevé tout les chart.min mais il en restait un que je n'avais pas vu.
l'erreur ce trouverais ici :
peut être remplacer mon objet par un tableau ?
Je t'ai indiqué l'erreur
...comme quoi un de tes chart[name] = document.getElementById("myAreaChart" + j) est non défini.
Effectivement je bouclé une fois de trop, je n'est plus d'erreur par contre rien ne s'affiche mais là ça doit etre un problème de html. je règle ça et je reviens vers vous pour vous dire ce qu'il en est.
Merci
j'ai donc réglé les problèmes de boucles et de html et tout fonctionne merci
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager