Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][JavaScript][PHP]Wykres
Forum PHP.pl > Forum > Przedszkole
grzes999
Witam

Nie bardzo wiedziałem gdzie dać ten temat bo może być klika rozwiązań tego problemu.

Otóż muszę zrobić wykres i nie był by z tym problemu bo bibliotek od tego jest dużo.
Tylko że musi on wyglądać jak poniżej. I jest to wykres temperatury czyli kolory są uzależnione od temperatury.



Na razie napisałem taki kod:

  1. <? $pogoda = array(array('dzien' => '01.07','temp' => 25),array('dzien' => '02.07','temp' => 20)
  2. ,array('dzien' => '03.07','temp' => 32),array('dzien' => '04.07','temp' => 18),array('dzien' => '05.07','temp' => 10)); ?>
  3. <table>
  4. <tr>
  5. <td><img src="images/pogoda/slonce-diagram.jpg" width="25" height="20" alt="slońce"></td>
  6. </tr>
  7. <? $i = $min_max['max']; foreach ($pogoda as $temp) : while($i >= $temp['temp']) : ?>
  8. <tr>
  9. <? if($i <= 0) : ?>
  10. <td><img src="images/wykres/niebieski.gif" ></td> <? endif;
  11. if($i > 0 && $i <= 10) : ?>
  12. <td><img src="images/wykres/zolty.gif" ></td> <? endif;
  13. if($i > 10 && $i <= 18) : ?>
  14. <td><img src="images/wykres/pomaranczowy.gif" ></td> <? endif;
  15. if($i > 18 && $i <= 28) : ?>
  16. <td><img src="images/wykres/ciemno_pomaranczowy.gif" ></td> <? endif;
  17. if($i > 28) : ?>
  18. <td><img src="images/wykres/czerwony.gif" ></td> <? endif;
  19. $i-=4; ?>
  20. </tr>
  21. <? endwhile; endforeach; ?>

Ale niestety nie działa tak jak bym chciał bo wyświetla mi paski tylko dla jednego dnia i po jednym :/

Mam nadzieję że ktoś ma jakiś pomysł na to.

W zmiennej min_max ma zapisane minimalne i maksymalne temperatury w tablicy.
CuteOne
  1. function getColor($int) {
  2.  
  3. switch($int) {
  4.  
  5. case $int > 0 && $int <= 4:
  6. return 'blue';
  7. break;
  8.  
  9. case $int > 4 && $int <= 8:
  10. return 'yellow';
  11. break;
  12. ...
  13. }
  14. }
  15.  
  16. $i = 30; // aktualna temp.
  17. $max = 35; // skala
  18.  
  19.  
  20. $wykres = '';
  21. while($max > 0) {
  22.  
  23. if($i >= $max) {
  24.  
  25. $wykres .= '<div class="'.getColor($max).'"></div>';
  26. }
  27. else {
  28.  
  29. $wykres .= '<div class="empty"></div>';
  30. }
  31.  
  32. $max--;
  33. }
  34.  
  35. echo '<div class="column">'.$wykres.'</div>';


Dodaj odpowiednie style oraz pętlę odpowiadającą za dni
grzes999
Wielkie dzięki wszystko działa jak należy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.