Witam

Walczę już jakiś czas i nie potrafię poradzić sobie z takim problemem.

Mam plik html który rysuje wykres, pobiera dane wygenerowane plikiem dane.php i rysuje wykres.

  1. <!doctype html>
  2. <!--
  3. Most basic sample showing the c3js sample in it's most basic form.
  4. -->
  5. <meta charset="utf-8">
  6.  
  7. <link href="assets/css/c3.min.css" rel="stylesheet" type="text/css">
  8.  
  9.  
  10. </head>
  11. <h1>wykres</h1>
  12. <div id="chart"></div>
  13.  
  14. <!-- Load the javascript libraries -->
  15. <script src="assets/js/d3.min.js" charset="utf-8"></script>
  16. <script src="assets/js/c3.min.js"></script>
  17. <script src="jquery-2.1.4.min.js"></script>
  18.  
  19.  
  20. <br>
  21.  
  22.  
  23. <!-- Initialize and draw the chart -->
  24. <script type="text/javascript">
  25.  
  26. var chart = c3.generate({
  27. bindto: '#chart',
  28. data: { x: 'x', url: 'dane.php'},
  29. size: { height: 566},
  30. point:{ show: false },
  31.  
  32. grid: {
  33. y: {
  34. lines: [
  35. {value: 80, text: '80 Stopni C', position: 'middle'},
  36. {value: 0, text: '0 Stopni C', position: 'middle'}
  37. ]
  38. }
  39. },
  40. axis:
  41. {
  42. x: {label: { text: 'Czas zapisu'}, type: 'category', tick: { rotate: 15, multiline: false,culling: { max: 25},fit: true }},
  43. y: { label: 'Temperatura C', lines: [{value: 0, text: 'Lable 1'}]},
  44. //y2: { show: true, label: 'Temperatura C', lines: [{value: 0, text: 'Lable 1'}]}
  45. }
  46.  
  47. });
  48.  
  49.  
  50.  
  51.  
  52. </script>
  53.  
  54. </body>
  55. </html>


Chciałbym teraz zrobić aby dane były dynamicznie odświeżane co pewien czas.
Zmodyfikowałem kod tak.

  1. <!doctype html>
  2. <!--
  3. Most basic sample showing the c3js sample in it's most basic form.
  4. -->
  5. <meta charset="utf-8">
  6.  
  7. <link href="assets/css/c3.min.css" rel="stylesheet" type="text/css">
  8.  
  9. <script language=javascript>
  10. // tworzymy zmienna
  11.  
  12. var object = null;
  13.  
  14. try
  15. {
  16. object = new XMLHttpRequest();
  17. }
  18. catch(e)
  19. {
  20. try
  21. {
  22. object = new ActiveXObject("Msxml2.XMLHTTP");
  23. }
  24. catch(e2)
  25. {
  26. try
  27. {
  28. object = new ActiveXObject("Microsoft.XMLHTTP");
  29. }
  30. catch(e3)
  31. {
  32. alert("Niestety Twoja przeglądarka nie obsługuje AJAXA");
  33. }
  34. }
  35. }
  36.  
  37.  
  38. function getData(dataSource, divID)
  39. {
  40. if (object.readyState==4 || object.readyState==0)
  41. {
  42. var obj = document.getElementById(divID);
  43.  
  44. // czyta z pliku lub wykonuje skrypt
  45. object.open("POST", dataSource);
  46.  
  47. object.onreadystatechange = function()
  48. {
  49. if (object.readyState == 4 && object.status == 200)
  50. obj.innerHTML= object.responseText;
  51. }
  52. object.send(null);
  53. }
  54. }
  55.  
  56. // w ponizszej funkcji wywolujemy funkcje getData z odpowiednimi parametrami
  57. // oraz wywolujemy ja sama rekurencyjnie po co okreslony czas (w naszym wypadku 1000 ms)
  58. function odswiezaj()
  59. {
  60. getData('dane.php','mojDIVIK');
  61. setTimeout("odswiezaj()", 1000);
  62. }
  63.  
  64.  
  65. </head>
  66. <h1>wykres</h1>
  67. <div id="chart"></div>
  68.  
  69. <div id="mojDIVIK"></div><!-- tutaj pokazują się dane z pliku dane.php
  70.  
  71. <!-- Load the javascript libraries -->
  72. <script src="assets/js/d3.min.js" charset="utf-8"></script>
  73. <script src="assets/js/c3.min.js"></script>
  74. <script src="jquery-2.1.4.min.js"></script>
  75.  
  76.  
  77. <br>
  78.  
  79.  
  80. <!-- Initialize and draw the chart -->
  81. <script type="text/javascript">
  82.  
  83. var chart = c3.generate({
  84. bindto: '#chart',
  85. data: { x: 'x', url: 'dane.php'},
  86. size: { height: 566},
  87. point:{ show: false },
  88.  
  89. grid: {
  90. y: {
  91. lines: [
  92. {value: 80, text: '80 Stopni C', position: 'middle'},
  93. {value: 0, text: '0 Stopni C', position: 'middle'}
  94. ]
  95. }
  96. },
  97. axis:
  98. {
  99. x: {label: { text: 'Czas zapisu'}, type: 'category', tick: { rotate: 15, multiline: false,culling: { max: 25},fit: true }},
  100. y: { label: 'Temperatura C', lines: [{value: 0, text: 'Lable 1'}]},
  101. //y2: { show: true, label: 'Temperatura C', lines: [{value: 0, text: 'Lable 1'}]}
  102. }
  103.  
  104. });
  105.  
  106.  
  107.  
  108.  
  109. </script>
  110.  
  111.  
  112.  
  113.  
  114.  
  115. <script language=javascript>
  116. odswiezaj();
  117. </body>
  118. </html>



Niestety nie potrafię tego połączyć na stronie wyświetla się wykres a pod spodem dane.
Wydaje mi się że trzeba by jakoś połączyć ten kawałem kodu

  1. var chart = c3.generate({
  2. bindto: '#chart',
  3. data: { x: 'x', url: '<div id="mojDIVIK"></div>'},
  4. size: { height: 566},
  5. point:{ show: false },


Proszę o jakąś wskazówkę która pomogła by mi rozwiązać problem.