Bonjour � tous,
Lors je ne savais pas trop comment donner un titre � ce poste. Alors je vais essayer d'�tre le plus explicite.
Voici un bout de code et j'attire votre attention sur borderColor et backgroundColor o� vous constaterez 'window.chartColors.[une_couleur]':
Code javascript : 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 var dataset = [{ label: "Waterlevel", fill: false, data: data_wl, // borderDash: [3, 3], type: 'line', borderWidth: 2, showLine: true, pointStyle: 'rectRot', borderWidth: 1, pointRadius: 1, pointHoverRadius: 13, borderColor: window.chartColors.darkblue, backgroundColor: window.chartColors.darkblue //backgroundColor: ['rgba(15, 37, 172, 1)'], //borderColor: ['rgba(45, 114, 66, 1)'] },{ label: "Waterlevel normalized", fill: false, data: data_wln, type: 'line', borderWidth: 1, pointRadius: 1, pointHoverRadius: 13, borderColor: window.chartColors.lightblue, backgroundColor: window.chartColors.lightblue }]
J'extrais des donn�e de ma base de donn�e et j'essaye de le faire dynamique. C'est � dire, si j'ai un capteur 'water' et que plus tard, j'ajoute un capteur 'moisture' dans ma base de donn�e, je ne veux pas editer mon fichier.js pour ajouter un bloque, comme vous voyeu ci-dessus.
Alors depuis mon fichier php qui va faire le traitement vers mas base donn�e pour le retourne au format json (AJAX), je pr�pare ce que vous voyez ci-dessus, et ca marche.
Voici une partie de mon code php avant de venir sur mon probl�me (mon prob�me est un probl�me javascript, mais je dois votre mettre du code PHP, pour comprendre.
J'attire votre attention sur les deux dernieres ligne de la boucle while()
$data[$row['id_sensor_type']]['datasets']['borderColor'] = $color[$row['id_sensor_type']];
Code PHP : 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 // Ici il y a la requete mysql sur la base de donée, que je ne mets pas car ca fonction et mon problème est plus bas, $color=array( 'window.chartColors.darkred', 'window.chartColors.darkblue', 'window.chartColors.lightblue', 'window.chartColors.red', 'window.chartColors.green', 'window.chartColors.darkgreen', 'window.chartColors.lightgreen', 'window.chartColors.light2green', 'window.chartColors.yellow', 'window.chartColors.purple', 'window.chartColors.orange', 'window.chartColors.grey' ); while($row = $sql_result->fetch_assoc()){ $data[$row['id_sensor_type']]['unit'] = $row['measure_unit']; $data[$row['id_sensor_type']]['name'] = $row['sensor_type_name']; $data[$row['id_sensor_type']]['station'] = $row['station_name']; $data[$row['id_sensor_type']]['datasets']['label'] = $row['sensor_type_longname']; $data[$row['id_sensor_type']]['datasets']['fill'] = 0; $data[$row['id_sensor_type']]['datasets']['data'][] = $row['value']; $data[$row['id_sensor_type']]['datasets']['type'] = "line"; $data[$row['id_sensor_type']]['datasets']['borderWidth'] = 1; $data[$row['id_sensor_type']]['datasets']['pointRadius'] = 1; $data[$row['id_sensor_type']]['datasets']['pointHoverRadius'] = 13; $data[$row['id_sensor_type']]['datasets']['pointStyle'] = "rectRot"; $data[$row['id_sensor_type']]['datasets']['showLine'] = 1; $data[$row['id_sensor_type']]['datasets']['borderColor'] = $color[$row['id_sensor_type']]; $data[$row['id_sensor_type']]['datasets']['backgroundColor'] = $color[$row['id_sensor_type']]; }
Donc les deux derni�res ligne
me permets de donner une couleur � ma chart, et ca marche (quoi c'est pas tellement vrai
Code php : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 $data[$row['id_sensor_type']]['datasets']['borderColor'] = $color[$row['id_sensor_type']]; $data[$row['id_sensor_type']]['datasets']['backgroundColor'] = $color[$row['id_sensor_type']]) car, mon concole.log(data) de la section 'success' (ajax) de mon fichier javascript m'affiche ceci:
Donc ceci est nikel SAUF que_meta: Object [ {�} ]
backgroundColor: "window.chartColors.darkgreen"
borderColor: "window.chartColors.darkgreen"
borderWidth: 1
data: Array [ 17.18, 18, 18.62, � ]
fill: 0
label: "T-Air"
pointHoverRadius: 13
pointRadius: 1
pointStyle: "rectRot"
showLine: 1
type: "line"
c'est du texte!!! alors dans le tout premier code que j'ai mis c'est pas du texte.backgroundColor: "window.chartColors.darkgreen"
borderColor: "window.chartColors.darkgreen"
Comparaison:
et
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 borderColor: window.chartColors.lightblue, backgroundColor: window.chartColors.lightblue
Voyez-vous mon probl�me?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 backgroundColor: "window.chartColors.darkgreen" borderColor: "window.chartColors.darkgreen"
Donc ma question; comment je peux parser, convertir, transformer une chaine de caracter venant de donn�e json, soit:
pour que ceci (voir premeir code)
Code : S�lectionner tout - Visualiser dans une fen�tre � part backgroundColor: "window.chartColors.darkgreen"
L'autre id�e que j'avais, c'�tait de cr�er un nouveau champ dans ma base de donn�e, genre une champs 'borederColor' et un autre 'backgroundColor' et 'denregistr� les code rgb et d'utiliser ceci
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 { label: "Waterlevel", fill: false, data: data_wl, // borderDash: [3, 3], type: 'line', borderWidth: 2, showLine: true, pointStyle: 'rectRot', borderWidth: 1, pointRadius: 1, pointHoverRadius: 13, borderColor: window.chartColors.darkblue, backgroundColor: window.chartColors.darkblue //backgroundColor: ['rgba(15, 37, 172, 1)'], //borderColor: ['rgba(45, 114, 66, 1)'] }
mais je pense que j'aurai le m�me probl�me (j'ai pas encore essay�).
Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 //backgroundColor: ['rgba(15, 37, 172, 1)'], //borderColor: ['rgba(45, 114, 66, 1)']
D'ailleur cette option me plait un peu plus, car je pourrais g�rer les couleurs depuis mon interface admin.
J'esp�re que mon explication itait un peu mieux que mon titre.
Merciiiii!
Partager