Vraag & Antwoord

Webprogrammeren & scripting

[php] functie om balken mee te maken

5 antwoorden
  • Ik ben bezig met een php functie die een "balk" (met een afbeelding) maakt door enkele gegevens. Dit is wat ik heb gemaakt: [code:1:794bea2ccc] <?php function balk($num,$kleur) { if (($num == 1) && ($kleur == 'rood')) { echo '<img src=\"img/website/balken/balk_rood.jpg\" width=\"10\" />' } } echo balk(1,rood); ?> [/code:1:794bea2ccc] Helaas werkt het alleen nog niet... Het idee is dus dat iemand alleen <? echo balk(waardering,kleur) ?> hoeft op te geven en dat de functie dan automatisch een balk tevoorschijn haalt. Ik ga dit gebruiken bij een review website, waarbij de waarderingen dus middels zo'n balk moeten kunnen worden weergeven: ik wil dus iets zoals op tweakers.net berijken: [url]http://tweakers.net/reviews/607/3[/url] (zie:helemaal onderaan) Wat doe ik fout? Alvast bedankt!
  • Ik denk dat die echo voor balk onderaan overbodig is. Moet de width trouwens niet variabel gemaakt worden? En de hoogte vast aangeven, lijkt me.
  • Ik heb de fouten al gevonden. Dit is wat ik nu heb: [code:1:ea6e945c13] <?php function balk($num,$kleur) { $waarde = $num * 2; if ($num > 100) { echo '<img src="img/website/balk_' . $kleur . '.jpg" width=' . $num * 2 . ' height="15" /><span style="font-family:Arial, Helvetica, sans-serif; font-size:11px; ">   Score: 100</span>'; } else { echo '<img src="img/website/balk_' . $kleur . '.jpg" width="' . $waarde . '" height="15" /><span style="font-family:Arial, Helvetica, sans-serif; font-size:11px; ">   Score: ' . $num . '</span>'; } } ?> blablabla tekst tekst tekst <? echo balk(100,'rood'); ?> blablabla [/code:1:ea6e945c13] Toch bedankt, gerben! :wink:
  • Even los van je probleemstelling, ik denk dat je de code nogal wat kan optimaliseren... Grofweg ziet het er nu zo uit:[code:1:8376e9454e]ALS tekst == ROOD{ SCHRIJF ROOD; }ANDERS ALS tekst == BLAUW{ SCHRIJF BLAUW; }ANDERS ALS tekst == GROEN{ SCHRIJF GROEN; }[/code:1:8376e9454e]Waarschijnlijk zie je nu zelf wel dat er een bepaalde redundantie in zit (herhaling). Wat waarschijnlijk fijner werkt en ook beter uit te breiden is, is een structuur als het volgende:[code:1:8376e9454e]ALS tekst == TOEGESTAAN{ SCHRIJF tekst; }[/code:1:8376e9454e]Met "TOEGESTAAN" bedoel ik dat je even moet controleren of het een geldige waarde is, meer niet. De functie [url=http://nl2.php.net/manual/nl/function.in-array.php]in_array()[/url] is hier in dit geval geschikt voor. Een andere optie die ook overzichtelijker (maar nog steeds minder overzichtelijk dan wat ik net zei) werkt is een constructie met [url=http://nl2.php.net/manual/nl/control-structures.switch.php]switch()[/url]. Ik hoop dat je wat aan deze informatie hebt. ;) - Bas.
  • Als je de nieuwe code bekijkt zie je dat ik dat al verandert heb ;) Nog niet met arrays e.d. maar dit werkt in principe perfect.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.