Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Graficzna prezentacja średniej wartości uzyskanej z 4 parametrów
Forum PHP.pl > Forum > Przedszkole
php__amator
Witam,
Zapewne znowu się wygłupię pytając o tak błache rzeczy ale ... niech tam wink.gif

otóż mam to w zasadzie zrobione od dawna ale strasznie "na około".
Skrypt odczytuje wartości 4 komórek z bazy i na ich podstawie wyświetla odpowiedni obrazek
prezentujący łagonie rzecz ujmując walory powiedzmy osobnika wink.gif w postaci słupka (u podstawy zielony
i im wyższy tym bardziej czerwony wink.gifsmile.gifsmile.gif ) ale mniejsza o szczegóły barwne,
rozwiązałem to ustawiając serię warunków "if"
  1. if ($eng <=0.5) {
  2. echo '<div class="oth" id="oth"><img src="images/1.png" width="8" height="78"></div>';
  3. }
  4. if ($eng >0.5 && $eng <=1.5) {
  5. echo '<div class="oth" id="oth"><img src="images/2.png" width="8" height="78"></div>';
  6. }
  7. if ($eng >1.5 && $eng <=2) {
  8. echo '<div class="oth" id="oth"><img src="images/3.png" width="8" height="78"></div>';
  9. }
  10. if ($eng >2 && $eng <=2.5) {
  11. echo '<div class="oth" id="oth"><img src="images/4.png" width="8" height="78"></div>';
  12. }
  13. if ($eng >2.5 && $eng <=3) {
  14. echo '<div class="oth" id="oth"><img src="images/5.png" width="8" height="78"></div>';
  15. }
  16. if ($eng >3 && $eng <=3.5) {
  17. echo '<div class="oth" id="oth"><img src="images/6.png" width="8" height="78"></div>';
  18. }
  19. if ($eng >3.5 && $eng <=4) {
  20. echo '<div class="oth" id="oth"><img src="images/7.png" width="8" height="78"></div>';
  21. }
  22. if ($eng >4 && $eng <=4.5) {
  23. echo '<div class="oth" id="oth"><img src="images/8.png" width="8" height="78"></div>';
  24. }
  25. if ($eng >4.5 && $eng <=5) {
  26. echo '<div class="oth" id="oth"><img src="images/9.png" width="8" height="78"></div>';
  27. }
  28. if ($eng >5 && $eng <=5.5) {
  29. echo '<div class="oth" id="oth"><img src="images/10.png" width="8" height="78"></div>';
  30. }
  31. if ($eng >5.5 && $eng <=6) {
  32. echo '<div class="oth" id="oth"><img src="images/11.png" width="8" height="78"></div>';
  33. }
  34. if ($eng >6 && $eng <=6.5) {
  35. echo '<div class="oth" id="oth"><img src="images/12.png" width="8" height="78"></div>';
  36. }
  37. if ($eng >6.5 && $eng <=8) {
  38. echo '<div class="oth" id="oth"><img src="images/13.png" width="8" height="78"></div>';
  39. }
  40. if ($eng >8 && $eng <=10) {
  41. echo '<div class="oth" id="oth"><img src="images/14.png" width="8" height="78"></div>';
  42. }
  43. }

Zdaję sobie sprawę, że można to zrobić inaczej, lepiej, krócej ale moja wiedza jest jeszcze zbyt ... ograniczona
żeby sobie z tym poradzić dlatego proszę o pomoc.
Chciałbym skrócić/usunąć zbędne rzeczy, uprościć kod, no chyba że się nie da smile.gif ?

pozdrawiam
phpamator
usb2.0
napewno można zamiast tego <div ... > można napisać funkcje z paremetrem, gdzie będziesz numerek przekazywał, generalnie lepiej będzie to wyglądało;)
no i skoro używasz klasy to dodaj do niej width i height skoro wszędzie ich wartości są takie same
red.orel
  1. function getImage($eng)
  2. {
  3. if($eng <= 0.5)
  4. return 1;
  5. elseif($eng > 0.5 && $eng <= 1.5)
  6. return 2;
  7. elseif($eng > 6.5 && $eng <= 8)
  8. return 13;
  9. elseif($eng > 8 && $eng < 10)
  10. return 14;
  11. else
  12. {
  13. for($i = 1.5; $i <= 6; $i+=0.5)
  14. {
  15. if($eng > $i && $eng <= ($i + 0.5))
  16. return ($i*2);
  17. }
  18. }
  19.  
  20. return 0;
  21. }
  22.  
  23. function renderImage($eng)
  24. {
  25. echo '<div class="oth" id="oth"><img src="images/'.getImage($eng).'.png" width="8" height="78"></div>';
  26. }
  27.  
  28. renderImage($eng);


Powinno działać.
bpskiba
Wprawdzie nie jestem zwolennikiem jquery, ale w tym przypadku wydaje się to właściwe.
http://jqueryui.com/demos/progressbar/

można również np tak

  1. <script LANGUAGE="JavaScript" TYPE="text/javascript">
  2. function zm()
  3. {
  4. document.getElementById("czer").style.height=document.getElementById("v").value;
  5. }
  6. <table height=200 width="30">
  7. <tr><td bgcolor="yellow">&nbsp;</td></tr>
  8. <tr><td id="czer" bgcolor="red">&nbsp;</td></tr></table>
  9. wstaw liczbę między 10 a 190 <input type="text" id="v">
  10. <input type="button" value="zmień" onclick="zm()"/>
  11. </body></html>

kolory można zmieniać identycznie jak proporcje
php__amator
Dziękuję Panowie,
Wolałbym jednak używać swojego graficznego paska wobec tego może powinienem spróbować z jQuery wink.gif
Ale wasze sugestie sprawdzę wieczorkiem.
Pozdrawiam
phpamator
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.