Statusbalk

Status
Niet open voor verdere reacties.

Supakiller

Gebruiker
Lid geworden
5 sep 2009
Berichten
66
Beste helpmij'ers.
Ik ben op zoek naar iemand die weet hoe je een mooie statusbalk kan maken.
Ik ben bezig met een site waar mensen hun tegoed kunnen opwaarderen tot 100 %. Nou werken alle query's om het op te waarderen alleen heb ik geen idee hoe ik precies zo'n balk moet maken.

Ik heb maar een iets met alle nodige informatie gemaakt en dan vraag ik jullie er iets moois van te maken ( als dat mogelijk is ) en anders een goede uitleg.

PHP:
<tr>

				<td class='balk_full' width='$data->opwaardering'></td>
				<td class='balk_empty'>
$data->opwaardering %
					
				</td>
			</tr>

Dit geeft gewoon 0 % aan natuurlijk, heb er niet mijn probeersels van php ingezet want dat zou het jullie alleen maar moeilijk maken lijkt mij.
Ik zou graag willen dat de tekst waarin hij de $data->opwaardering aangeeft overspringt bij 50 %. en bij 0 t/m 50 in het zwart en 50 t/m 100 wit.

Mvg,
Supa
 
Laatst bewerkt:
Duurt de bewerking zo ontzettend lang dan, dat je een status meter nodig hebt? :)

Je kunt je bewerking op bepaalde punten een status signaal terug laten geven (via AJAX) en met javascript het balkje updaten.
 
Duurt de bewerking zo ontzettend lang dan, dat je een status meter nodig hebt? :)

Je kunt je bewerking op bepaalde punten een status signaal terug laten geven (via AJAX) en met javascript het balkje updaten.

Ja, omdat het in termijnen gaat.

Is er niet een simpelere manier via php ?
 
Nauwelijks, want PHP werkt alleen op je server, en stuurt 1x per request iets naar de browser.

Je kunt niet veel meer doen dan in je database een voortgang bijhouden, en AJAX 1x per paar seconden naar de database de voortgang op laten vragen en het balkje bijwerken.

Ik denk niet dat je veel verder dan dat gaat komen...
 
In dat geval is de oplossing niet ver: de waardes heb je blijkbaar al, dus wat je nu moet doen is een breedte voor de tabel defineren en vervolgens de breedte van de cellen instellen. Dat kun je rechtstreeks doen met het percentage, maar in je voorbeeld staat ook nog een cel voor het percentage in tekstvorm en dat gooit roet in het eten.

Als je het toch op die plaats wilt houden kun je bijvoorbeeld alleen de lengte van de statusbalk opgeven en aan de hand daarvan een percentage in pixels berekenen. Een voorbeeld:
PHP:
<style>
	body { background-color:khaki; }
	table { background-color:white; }
</style>
<?php
	$breedte = 800;
	if (isset($_GET["p"]) && ctype_digit($_GET["p"]) && $_GET["p"] >= 0 && $_GET["p"] <= 100) {
		$percentage =  $_GET["p"];
	} else {
		$percentage = 0;
	}
	$zwart = ceil(($breedte/100)*$percentage);
	echo "<table cellpadding='0' cellspacing='0'>";
	echo "<tr><td style='width:".$zwart."px;background-color:black'></td><td style='width:".($breedte-$zwart)."px'></td><td style='width:50px;text-align:center;'>".$percentage." %</td></tr>";
	echo "</table><br />";
	for ($n=0;$n<=100;$n+=10) {
		echo "<a href='?p=".$n."'>".$n."%</a> ";
	}
?>
Nadeel van deze methode is natuurlijk dat je te maken hebt met een vooraf ingestelde breedte en dat kan problemen opleveren als bezoekers een afwijkende resolutie gebruiken.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan