login  Naam:   Wachtwoord: 
Registreer je!
 Forum

if($health) etc..

Offline Scythen - 02/02/2007 17:53
Avatar van ScythenPHP gevorderde Goedendag,

ik wou graag iets maken waardoor je als je minder dan 50% health hebt, een orange td bgcolor moet krijgen, en hoger dan 50% een groene.. maar hij werkt nog niet helemaal.. kan iemand voordoen hoe het moet?

22 antwoorden

Gesponsorde links
Offline Rik - 02/02/2007 18:02
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
  1. <style type="text/css">
  2. .orange {
  3. backround-color: orange;
  4. }
  5. .green {
  6. backround-color: green;
  7. }
  8. </style>
  9.  
  10. <?php
  11. $bgcolor = $health < 50 ? 'orange' : 'green';
  12. echo '<td class="' . $bgcolor . '">(...)</td>';
  13. ?>
Op zo'n manier?
Offline svm - 02/02/2007 18:04 (laatste wijziging 02/02/2007 18:05)
Avatar van svm PHP ver gevorderde Te laat, deze is wat meer uitgeschreven qua PHP.

Je vult in $health de getallen van 1 t/m 100 in alszijnde de procenten.
Zonder % dus.
  1. <?
  2. if($health >= 50)
  3. $kleur = "orange";
  4. }else{
  5. $kleur = "#00FF00";
  6. }
  7.  
  8. echo "<td bgcolor='". $kleur ."'>Je leven: ". $health ."%</td>";
  9. ?>
Offline TotempaaltJ - 02/02/2007 18:09 (laatste wijziging 02/02/2007 18:11)
Avatar van TotempaaltJ PHP interesse
  1. <?php
  2. if ($health <= 50)
  3. $color = 'FFA500';
  4. elseif ($healt >= 50)
  5. $color = '7CFC00';
  6. else
  7. echo '<font color="red">Er is een probleem opgetreden!</font>';
  8.  
  9. echo "<font color=\"#$color\">$name</font>";
  10. ?>


Zo ongeveer?
Citaat:
Edit:

Ze waren me voor!! 
Offline Scythen - 02/02/2007 18:11 (laatste wijziging 02/02/2007 18:14)
Avatar van Scythen PHP gevorderde Dankjulliewel! Heb die van svm gebruikt en hij werkt prima!:) En nog een vraagje (sinds ik toch nooit antwoord heb gekregen op deze vraag, omdat op een of andere reden niemand antwoord)

ik heb een link, logout.. die verwijst naar logout.php, en daar word de sessie afgebroken, en een header naar index.php.. alleen die index.php komt in mijn MAIN FRAME, terwijl ik wil dat alle frames weg gaan, en gewoon de index.php tevoorschijn komt.. iemand enig idee?


Én btw, hoe doe ik dat zeg maar als die orange moet laten zien, dat die td ook een beetje verkleint.. dat ie ongeveer wel in verhouding is met procenten, dus als mijn health 50% is .. dat ie dan ook 50% is.
Offline svm - 02/02/2007 18:20
Avatar van svm PHP ver gevorderde Verkleinen:

  1. <?
  2. if($health >= 50)
  3. $kleur = "orange";
  4. $breedte = "20"; //"" is optioneel
  5. }else{
  6. $kleur = "#00FF00";
  7. $breedte = "30"; //"" is optioneel
  8. }
  9.  
  10. echo "<td bgcolor='". $kleur ."' width='". $breedte ."'>Je leven: ". $health ."%</td>";
  11. ?>


En je werkt dus met frames (niet slim maar ja) en je wilt eruit?
Dat kan met javascript:

  1. <script type="text/javascript">
  2. if (window!= top)
  3. top.location.href=location.href;
  4. </script>
Offline Scythen - 02/02/2007 18:23 (laatste wijziging 02/02/2007 18:24)
Avatar van Scythen PHP gevorderde Svm, breedte blijft gelijk.. hij blijft telkens 100%.


en die javascript, waar moet ik die plaatsen? en moet ik hem nog veranderen of?
Offline svm - 02/02/2007 18:26 (laatste wijziging 02/02/2007 18:26)
Avatar van svm PHP ver gevorderde Hmm, haal de quotes eens weg.
Maar 100%??? Dan heb je er meer instaan, kijk de HTML/CSS eens na..

De JS zet je op de pagina (ergens in de <head>) die uit de frames moet springen.
Offline Abbas - 02/02/2007 18:26
Avatar van Abbas Gouden medaille

Crew .NET
Ik denk dat je de breedte zonder quotes moet zetten...
Met quotes is het een string he, moet het dan niet zonder die quotes om de breedte te bepalen?
Offline Scythen - 02/02/2007 18:32 (laatste wijziging 02/02/2007 18:32)
Avatar van Scythen PHP gevorderde Als ik ze zonder quotes neerzet, en puntjes natuurlijk krijg ik hetzelfde..

en die javascript, zet ik toch in mijn logout.php? daar word de sessie afgebroken..
Offline svm - 02/02/2007 18:35 (laatste wijziging 02/02/2007 18:36)
Avatar van svm PHP ver gevorderde Eerder in index.php.
Je hebt dan wel dat hij elke keer dat hij geframed wordt, zichzelf uitbreekt.

Maar je kunt hem ook in logout.php zetten, in het frame van de index.php.
Offline Scythen - 02/02/2007 18:38
Avatar van Scythen PHP gevorderde In index.php heeft gewerkt hoor, dankjewel. Verder stuit ik op geen problemen (althans, nu nog niet).

En nu nog die breedte van die TD.. wil nog niet lukken, heb heel veel geprobeerd.. heb nu dit:
  1. if($health >= '80'){
  2. $kleur = "green";
  3. $breedte = "100";
  4. }
  5. elseif
  6. ($health >= '25'){
  7. $kleur = "orange";
  8. $breedte = "20";
  9. }
  10. elseif($health >= '1'){
  11. $kleur = "red";
  12. $breedte = "30";
  13. }
  14.  
  15. echo "<tr><td class='btext2' bgcolor='". $kleur ."' width=$breedte>". $health ."%</td></tr>";


Hmm...
Offline svm - 02/02/2007 19:01
Avatar van svm PHP ver gevorderde Je moet in elk geval die $breedte in de td buiten de quotes halen:
  1. <? //highlighten
  2. echo "<tr><td class='btext2' bgcolor='". $kleur ."' width=". $breedte .">". $health ."%</td></tr>";


En wat doet die class btext2?
Offline Scythen - 02/02/2007 19:02 (laatste wijziging 03/02/2007 11:36)
Avatar van Scythen PHP gevorderde Btext2:

.btext2 {font: 10px verdana; color: #ffffff; border-style: solid; border-color: #333333; padding-left: 3px; padding-right: 3px;}

Niks mis mee, volgens mij.

Iemand anders misschien?

Niemand? Heb het nog steeds niet, de breedte van de health balk..
Offline Rik - 03/02/2007 11:46
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Dit werkt bij mij:
  1. <table>
  2. <?php
  3. $health = 90;
  4. if($health >= '80'){
  5. $kleur = "green";
  6. $breedte = "100";
  7. }
  8. elseif
  9. ($health >= '25'){
  10. $kleur = "orange";
  11. $breedte = "20";
  12. }
  13. elseif($health >= '1'){
  14. $kleur = "red";
  15. $breedte = "30";
  16. }
  17. printf('<tr><td class="btext2" style="background-color: %s; width: %spx">%d</td></tr>', $kleur, $breedte, $health);
  18. ?>
  19. </table>
Offline Scythen - 03/02/2007 11:59
Avatar van Scythen PHP gevorderde Hmm, bij mij verandert de hele table width mee.. dat moet ik ook niet hebben, ik wil gewoon dat die breedte van de bgcolor als het ware verkleint word.
Offline Rik - 03/02/2007 12:28 (laatste wijziging 03/02/2007 12:29)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik heb er nu dit van gemaakt:
  1. <?php
  2. $health_balk_breedte = 200;
  3. $health = rand(0, 100);
  4. $kleur = 'green';
  5.  
  6. $breedte = round($health * $health_balk_breedte / 100);
  7. $kleur = $health > 80 ? 'green' : ($health > 25 ? 'orange' : 'red');
  8.  
  9. printf('<div style="width: %dpx; border: 1px solid black; float: left;"><div style="background-color: %s; width: %dpx; border-right: 1px solid black; color: white;">&nbsp;</div></div>%d%%', $health_balk_breedte, $kleur, $breedte, $health);
  10. ?>
Ik weet niet of het precies zo is als wat je bedoelt, maar je kan het zelf nog aanpassen als je wilt.

Edit:
<?php en ?> toegevoegd!  
Offline Scythen - 03/02/2007 12:33 (laatste wijziging 03/02/2007 12:52)
Avatar van Scythen PHP gevorderde Boukefalos, het werkt nu wel.. alleen jij gebruikt nu DIV, en ik gebruik tables.. enig idee hoe ik het kan invoegen in mijn table? Denk niet dat het kan... ofwel?

Iemand?
Offline Rik - 03/02/2007 12:53
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ja dat zou ook moeten kunnen. Ik had het zo gedaan omdat ik dan minder code nodig heb.

De breedte van een tr kun je niet aanpassen, dan moet je de table een breedte meegeven. Als je die breedte invult bij $health_balk_breedte, en van de tweede div een td maakt zou het moeten werken.
Offline Scythen - 03/02/2007 12:55
Avatar van Scythen PHP gevorderde Al slaj em e dood.. ik zou nog niet weten hoe, wil je het misschien even voor mij doen?
Offline Rik - 03/02/2007 13:15
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Zo dan? 
  1. <?php
  2. /* Orgineel
  3. $health_balk_breedte = 200;
  4. $health = rand(0, 100);
  5.  
  6. $breedte = round($health * $health_balk_breedte / 100);
  7. $kleur = $health > 80 ? 'green' : ($health > 25 ? 'orange' : 'red');
  8.  
  9. printf('<div style="width: %dpx; border: 1px solid black; float: left;"><div style="background-color: %s; width: %dpx; border-right: 1px solid black; color: white;">&nbsp;</div></div>%d%%', $health_balk_breedte, $kleur, $breedte, $health);
  10. */
  11.  
  12. /* Vanaf hier toegepast op een tabel */
  13. $health_balk_breedte = 123; // Verander dit naar de breedte van de tabel
  14. $health = rand(0, 100); // Leven van 0 t/m 100 om te testen
  15.  
  16. $breedte = round($health * $health_balk_breedte / 100);
  17. $kleur = $health > 80 ? 'green' : ($health > 25 ? 'orange' : 'red');
  18.  
  19. ?>
  20.  
  21. <table width="123" style=" border: 1px solid black; float: left;" cellspacing="0" cellpadding="0">
  22. <tr>
  23. <td style="background-color: <?php echo $kleur; ?>; width: <?php echo $breedte; ?>; border-right: 1px solid black; color: white;">&nbsp;</td>
  24. <td style="width: <?php echo $health_balk_breedte - $breedte ?>;">&nbsp;</td>
  25. </tr>
  26. </table>
  27. <span style="float: left;"><?php echo $health; ?>%</span>
Offline svm - 03/02/2007 13:36
Avatar van svm PHP ver gevorderde Ik heb gister in bed over dit probleem nagedacht, en geef je toevallig een breedte op in de <table> ?

Dan zal de td namelijk automatisch die breedte krijgen als er geen andere cel naast staat .
Offline Rik - 03/02/2007 14:00
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Daar kwam ik ook achter.  Ik had het ook opgelost met een extra cel.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.28s