Каков самый простой способ изменить цвет текста на основе переменной?
Например: если $ var находится между 1-5, зеленым. Между 6-10, Оранжевый. Больше 11, Красный.
function getProperColor($number) { if ($var > 0 && $var <= 5) return '#00FF00'; else if ($var >= 6 && $var <= 10) return = '#FF8000'; else if ($var >= 11) return = '#FF0000'; }
И используйте его вот так:
<div style="background-color: <?=getProperColor($result['number'])?>;"><?=$result["title"]?></div>
$color = "#000000"; if (($v >= 1) && ($v <= 5)) $color = "#00FF00"; else if (($v >= 6) && ($v <= 10)) $color = "#FF9900"; else if ($v >= 11) $color = "#FF0000"; echo "<span style=\"color: $color\">Text</span>";
Значения цвета индексируются константами? Я бы подготовил хэш-карту
$colorMap[0] = '#00FF00'; //green $colorMap[1] = '#0000FF'; //blue $colorMap[2] = '#FF0000'; //red $colorMap[3] = '#330000'; //dark red
и так далее. Затем используйте CSS
<span style="color: <?php echo $colorMap[$var]; ?>;">desired color</span>
Вам нужно фактически использовать инструкции elseif, если вы собираетесь использовать набор операторов if,
if ($var < 6) $color = '#00FF00'; elseif ($var < 10) $color = '#FF8000'; elseif ($var > 10) $color = '#FF0000';
Я буду использовать цвета CSS, а также подчеркнуть тот факт, что номер 11 не соответствует ни одному цвету в соответствии с вашими правилами, что делает большую часть ответов недопустимыми 🙂
<?php $color=getColor(11); function getColor($n){ // Is number between 1 and 5? if($n>=1 && $n<=5) return "green"; // Is number between 6 and 10? if($n>=6 && $n<=10) return "orange"; // Is number greater than 11 if($n>11) return "red"; // Return default (black) for all other numbers return "black"; } ?> <span style='color:<?=$color?>'>Text</span>
Что-то вроде этого трио операторов if:
if ($var < 10) $color = '#FF8000'; if ($var < 6) $color = '#00FF00'; if ($var >= 10) $color = '#FF0000'; echo "<span style=\"color: $color;\">This text is colored.</span>";
Простое решение может состоять в том, чтобы сделать что-то вроде этого …
if ($var < 6) $style="0F0"; else if ($var < 11) $style="F50"; else $style = "F00"; ?><div style="color:#<?php echo $style; ?>">blar</div>
Тернарный оператор для вашего простого примера.
$color = ($var < 6) ? '#FF8000' : (($var < 10) ? '#00FF00' : '#FF0000');
Я бы использовал классы CSS вместо встроенного стиля цвета … Пусть CSS работает …
<?php $var = 5; $class = (($var < 6) ? 'greenclass' : (($var < 11) ? 'orangeclass' : 'redclass' )) ?> <span class="<?php echo $class?>">text</div>
Если ни один из этих ответов не является тем, который вы ожидаете, что именно вы пытаетесь выполнить? Можете ли вы дать больше информации?
Я нашел этот плагин:
http://www.jnathanson.com/blog/client/jquery/heatcolor/index.cfm#examples
Предполагая, что один работает с диапазонами, это довольно гибко:
function getProperColor($range, $value) { foreach($range as $key => $color) { if ($value <= $key) return $color; } return $color; } $colorRange = array( 5 => 'green', 10 => 'orange', 11 => 'red' ); for($i=-1;$i<16;$i+=2) { echo "$i:" . getProperColor($colorRange, $i) . "\n"; }
Это приведет к выводу:
-1:green 1:green 3:green 5:green 7:orange 9:orange 11:red 13:red 15:red
<?php $var='2'; ?> <html> <body> <p>Hello Welcome.I am <?php if($var>0 && $var<=5) echo '<p style=color:Green;>'; else if($var>=6 && $var<= 10) echo '<p style=color:orange;>'; else echo '<p style=color:red;>'; ?> I am a Developer. </p> </body>
$color="green"; $text="foo"; echo wrapColor($color, $text); function wrapColor($color, $text){ return "<span style=color:$color>$text</span>"; }