Autor Zpráva
pepan
Profil
Ani vlastně nevím, jestli jsem můj problém zařadil do správné sekce, ale snad ano, takže k věci.
Mám takovýto script :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Graf</title>
</head>
<body>
<style>
.graph {
position: relative; /* IE is dumb */
width: 200px;
border: 1px solid #B1D632;
padding: 0px;
}
.graph .bar {
display: block;
position: relative;
background: #B1D632;
text-align: center;
color: white;
height: 2em;
line-height: 2em;
}
.graph .bar span { position: absolute; left: 1em; }
</style>

<?
$quota="1000"; // velikost weboveho prostoru
function obsah($adr,&$total,&$dir,&$size){
$dp=OpenDir($adr);
do{
$itm=ReadDir($dp);
if(Is_Dir("$adr/$itm")&& $itm!="." && $itm!=".." && $itm!=""){
obsah("$adr/$itm",$total,$dir,$size);
$dir++;
} elseif ($itm!="." && $itm!=".." && $itm!=""){
$size+=FileSize("$adr/$itm");
$total++;
}
} while ($itm!=false);
CloseDir($dp);
}

obsah(".",$total,$dir,$size);
$freeA=Bcdiv($size,1024*1024,2);
$freeB=$quota-$freeA;
echo "<br />Obsazené místo: <b>$freeA</b> MB<br />Volné místo: <b>$freeB</b> MB<br /><b>$total</b> souboru ve <b>$dir</b> adresářích";
// výpočet pro graf
$procento=$quota/100;
//kolik procent z celku je zabrana kapacita
$procenta=100-($freeB/100)*$procento;
echo '<br>';
echo '<div class="graph">';
echo'<strong class="bar" style="width: '.$procenta.'%;">'.$procenta.'%</strong>';
?>
</div>
</body>
</html>

Slouží k výpočtu volného místa na hostingu, zároveň obsahuje část, která zobrazí graf obsazení volného místa. Tam bych potřeboval, aby při asi 80% šířky sloupce ($procenta=80;) změnilo pozadí barvy grafu na ze zelené na červenou. Předem děkuji.
pepan
Profil
jo a ještě bych k tomu dodal, zda-li by to bylo možné i když by to CSS bylo v externím souboru... Dík za všechno
pepan
Profil
Takže odhaduju, že nic takového není možné realizovat?
tiso
Profil
Priraď podľa hodnoty triedu tomu baru a farbu nastav pomocou nej...
pepan
Profil
tiso
jenže já nevím jak ...
Jan Tvrdík
Profil
Možnosti:
a) pomocí PHP - spočítáš velikost v procentech, na základě toho určíš barvu a tu pak nechap vypsat do stylu (inline nebo do head)
b) pomocí JS - zjistil šířku sloupce a podle toho nastavit barvu
Manq
Profil
pepan
Kdybys to PHP psal ty, tak bys to věděl.
pepan
Profil
Jan Tvrdík
velikost v procentech tam spočítanou mám ($procenta), s tou další částí už nevím, CSS moc neovládám.
Manq
možná
Str4wberry
Profil
Odpovídám pepanovi:
Nechápu, jak Tě takovéhle „lepení“ kódu může bavit.
echo '<strong class="bar" style="width: '.$procenta.'%'; 

if ($procenta == 80) echo '; color: red;';
echo '">'.$procenta.'%</strong>';
Pokud bys to chtěl do externího souboru, nastavil (přidal) bys zvláštní třídu.
pepan
Profil
Str4wberry
Díky, no, celkem mě to baví ;) . Raději bych to měl v tom externím souboru, ale s tou zvláštní třídou to nechápu...
Str4wberry
Profil
Odpovídám pepanovi:
echo '<strong class="bar'; 

if ($procenta == 80) echo ' jmenotridy';
echo '" style="width: '.$procenta.'%">'.$procenta.'%</strong>';
A externí soubor:
strong.jmenotridy {background: red}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0