ďťż

[php] "statystyki"

       

Podstrony


telcocafe

Witam jak zrobić taki pasek w php jak jest na http://osiolek.com/

chodzi mi o to, że w skrypcie podaję ile to jest 100%, np. 480, podaję również ile mam teraz %, np 48% i potem, żeby mi wyświetlił się taki pasek.

Poproszę o link do jakiegoś skryptu, albo jak ktoś chce może mi coś takiego napisać ^_^



Wykonujesz div'a o szerokości przekazanej przez php. Można także skorzystać z modułu GD.

#edit:
<?php // kod $zmienna = 'ktora trzyma ten %'; $zmienna2 = 'wartosc ma % pozostaly czyli 100% - procent w $zmienna'; echo '<div style="width:'.$zmienna.'; height: 20px; float: left">&nbsp</div><div style="width:'.$zmienna2.'; height: 20px; float: left">&nbsp</div>'; ?>

Do styli tych 2 warstw tzreba jeszcze dopisac pare atrybutow, wszystkie za bardzo pogmatwaly by kod ;)
Użytkownik m_uli edytował ten post 11 lipiec 2006, 15:47

Wykonujesz div'a o szerokości przekazanej przez php. Można także skorzystać z modułu GD.

http://pl.php.net/ma...l/ref.image.php - manual dobry na wszystko - poczytaj o funkcjach obrazkowych z biblioteki gd

http://www.webdiary....+art.id+157.htm - przydatny artykuł




- Nie proś o napisanie skryptu, zgłaszaj jedynie pytania dot. konkretnych problemów.

A twój problem to ?
a.. procenty obliczamy tak:
$procent = ($obecna_wartosc/$maks_wartosc)*100
GD = php.net -> GD ale nie polecam. Niepotrzebnie obciaza to serwer. Lepiej zrobic wlasnie na divach albo majac odpowiednio duzo plikow graficznych ponumerowanych od 0 do 100 :)
Użytkownik Einzeinbleth edytował ten post 11 lipiec 2006, 15:43

http://pl.php.net/ma...l/ref.image.php - manual dobry na wszystko - poczytaj o funkcjach obrazkowych z biblioteki gd

http://www.webdiary....+art.id+157.htm - przydatny artykuł

Najwyższy czas zacząć się uczyc ;p Co nieco podpowiem, ale na gotowca nie licz. Zrób trzy pliki graficzne, jeden - góra słupka (czyli zaokrąglone cos do góry), drugi -dół słupka - po 2 px wysokosci i trzeci srodkowy 1 px. Robisz obrazek (imagecreate) o wysokosci takiej, jaka ma być dla danych wartosci procentowych. Importujesz te trzy pliki (ImageCreateFromGif lub JPEG czy PNG w zależności od formatu). Wklejasz je (ImageCopy) i wyświetlasz. Bardzo dużą pomocą jest ten artykuł z webdiary po polsku - powinieneś go zrozumieć, a dodatkowe informacje z manuala.

progress.php
<?php $img = imagecreatetruecolor($_GET['width'], $_GET['height']); $clWhite = imagecolorallocate($img, 255, 255, 255); $clBlack = imagecolorallocate($img, 0, 0, 0); $clRed = imagecolorallocate($img, 255, 0, 0); imagefilledrectangle($img,0,0,$_GET['width'], $_GET['height'], $clWhite); imagerectangle($img, 0, 0, $_GET['width'], $_GET['height'], $clBlack); $wid = round ( (($_GET['width']-2)*$_GET['percent'])/100 ); imagefilledrectangle($img, 1, 1, $wid, $_GET['height']-2, $clRed); header("Content-type: image/gif"); imagegif($img); ?>

Użycie:
<img src="progress.php?width=450&height=20&percent=75" alt="ProgressBar" />

Sprawdź czy działa, bo pisane z palca - mogą być błędy :P
Użytkownik tiraeth edytował ten post 11 lipiec 2006, 21:19
a nie wygodniej byłoby zrobić dwa divy obok siebie z różnymi tłami i tylko zmieniać ich szerokości? :blink:

Na pewno wygodniej, ale autor chciał rozwiązania w php :)


Na pewno wygodniej, ale autor chciał rozwiązania w php :)


progress.php
<?php $img = imagecreatetruecolor($_GET['width'], $_GET['height']); $clWhite = imagecolorallocate($img, 255, 255, 255); $clBlack = imagecolorallocate($img, 0, 0, 0); $clRed = imagecolorallocate($img, 255, 0, 0); imagefilledrectangle($img,0,0,$_GET['width'], $_GET['height'], $clWhite); imagerectangle($img, 0, 0, $_GET['width'], $_GET['height'], $clBlack); $wid = round ( (($_GET['width']-2)*$_GET['percent'])/100 ); imagefilledrectangle($img, 1, 1, $wid, $_GET['height']-2, $clRed); header("Content-type: image/gif"); imagegif($img); ?>

Użycie:
<img src="progress.php?width=450&height=20&percent=75" alt="ProgressBar" />

Sprawdź czy działa, bo pisane z palca - mogą być błędy :P

działa ;)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.