Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wykresy animowane + dane ze zmiennej php + json[inne][PHP][JavaScript]
Nidan23
post 16.05.2019, 17:11:00
Post #1





Grupa: Zarejestrowani
Postów: 101
Pomógł: 2
Dołączył: 26.04.2019

Ostrzeżenie: (10%)
X----


Otóż sprawa ma się następująco, poszukuję biblioteki bądź poradnika jak tworzyć wykresy animowane (czyli jak najadę na kolumnę/kropkę to wyświetli mi dokładną wartość, choć tyle). Wiem, wiem w internetach jest sporo takich niby rozwiązań, próbowałem korzystać z CanvasJS.com, jednak albo robiłem błąd w pętli, albo nie da rady, bo wyświetlał się tylko ostatni członek klanu a nie każdy. Poniżej wklejam kod:

  1. <?php
  2. $clantag = "#28LJOYOLQ";
  3.  
  4. $clanurl = "https://api.clashofclans.com/v1/clans/" . urlencode($clantag);
  5.  
  6. $ch = curl_init($clanurl);
  7.  
  8. $headr = array();
  9. $headr[] = "Accept: application/json";
  10. $headr[] = "Authorization: Bearer ".$token;
  11.  
  12. curl_setopt($ch, CURLOPT_HTTPHEADER, $headr);
  13. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  14. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  15. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  16.  
  17. $res = curl_exec($ch);
  18. $data = json_decode($res, true);
  19. curl_close($ch);
  20.  
  21. if (isset($data["reason"])) {
  22. $errormsg = true;
  23. }
  24.  
  25. $members = $data["memberList"];
  26.  
  27. foreach($members as $member) {
  28.  
  29. $dataPoints = array(
  30.  
  31. array("label"=> $member["name"], "y"=> $member["donations"]),
  32.  
  33. );
  34. ?>

  1. window.onload = function () {
  2.  
  3. var chart = new CanvasJS.Chart("chartContainer", {
  4. animationEnabled: true,
  5. exportEnabled: true,
  6. theme: "light2", // "light1", "light2", "dark1", "dark2"
  7. title:{
  8. text: "Donaty"
  9. },
  10. data: [{
  11. type: "column", //change type to bar, line, area, pie, etc
  12. //indexLabel: "{y}", //Shows y value on all Data Points
  13. indexLabelFontColor: "#5A5757",
  14. indexLabelPlacement: "outside",
  15. dataPoints: <?php echo json_encode($members); ?>
  16. }]
  17. });
  18. chart.render();
  19.  
  20. }


+ wywołanie wykresu ze skryptem z ich biblioteki

  1. <div id="chartContainer" style="height: 370px; width: 100%;"></div>
  2. <script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>


Więc jak mówiłem, wykres wyświetla tylko jedną osobę a nie wszystkie, co jest kłopotem, a że dane są cały czas aktualizowane, to prowadzanie stałych danych mija się z celem.



PS. Prawdopodobnie nie umiem używać google'a, więc nie krzyczcie jak jednak znajdziecie coś co może zadziałać.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 05:17