Héllo ladies and gentlemen,
N'étant pas un grand spécialiste de j'ajax et autre merveilles en javascript fait maintenant plusieurs jours que je bloque sur la librairie Highcarts et php, c'est pour cela que je me tourne vers vous, afin d'avoir votre avis.
Je vous explique :
je dois récupérer une valeur directement d'un service web via php, (jusqu'à la pas de problèmes), en sachant que c'ette valeur évolue (c'est un chiffre d'affaire). ensuite je dois afficher ce chiffre d'affaire dans un highcarts type :
http://www.highcharts.com/demo/dynamic-update
En gros au lieu d'avoir un random de l'information je récupére ma valeur toutes les minutes ou secondes.
Pour l'aspect php pas de soucis voici le code :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $MonTab = array (); $MonTab['Ca_Net'] = $Valeur[2]; $MonTab['Ca_Brut'] = $Valeur[3]; $donnees = json_encode($MonTab['Ca_Brut'], JSON_NUMERIC_CHECK); echo $donnees;
Pour la partie highcarts
jusqu'à la pas de problème le chiffre d'affaire s'affiche correctement, sauf que celui-ci n'évolue pas puisqu'il faudrais rafraichir l'information j'ai tout de même constaté que fafouillant sur la toile on pouvais rafraichir une div via l'ajax mais je ne sais pas si c'est la bonne méthode pour mon projet, aurriez-vous une solution à me proposer pour que l'information que j'extraie du fichier php évolue ? dans le highcarts (j'espère avoir bien expliqué ma problèmathique).
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 $(function () { $(document).ready(function() { Highcharts.setOptions({ global: { useUTC: false } }); var chart; $('#container').highcharts({ chart: { type: 'spline', animation: Highcharts.svg, // don't animate in old IE marginRight: 10, events: { load: function() { // set up the updating of the chart each second var series = this.series[0]; setInterval(function() { var x = (new Date()).getTime(); // current time y = <?php echo $donnees ?>; series.addPoint([x, y], true, true); }, 1000); } } }, title: { text: 'Votre Chiffre d affaire' }, xAxis: { type: 'datetime', tickPixelInterval: 150 }, yAxis: { title: { text: 'CA' }, plotLines: [{ value: 0, width: 1, color: '#808080' }] }, tooltip: { formatter: function() { return '<b>'+ this.series.name +'</b><br/>'+ Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) +'<br/>'+ Highcharts.numberFormat(this.y, 2); } }, legend: { enabled: false }, exporting: { enabled: false }, series: [{ name: 'CA', data: (function() { // generate an array of random data var data = [], time = (new Date()).getTime(), i; for (i = -8; i <= 0; i++) { data.push({ x: time + i * 1000, y: <?php echo $donnees ?> }); } return data; })() }] }); }); }); </script> </head> <body> <script src="../../js/highcharts.js"></script> <script src="../../js/modules/exporting.js"></script> <div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
Partager