@Lyuba2018

Как исправить ошибку в коде?

Подскажите пожалуйста как поправить код ? У меня переменная $ost выводит сколько осталось дней до окончания срока обявления но она не правильно работает.
Задумка такая 30 дней зеленый цвет, 20 дней оранжевый, 10 красный.
Сам код такой:
?>
	<div class='progressBlock'>
    <div class='percent'></div>
</div>


<style>
.progressBlock {
    width: 100px;
    height: 10px;
    border-radius: 3px;
    border: 1px solid black;
    position: relative;
}
 .percent{
    position: absolute;
    <?
	   
        //$ost = 30; //Осталось 10 дней это для примера так работает
		$total = 30; //Всего 30 дней
		$p = $ost * 100 / $total; // Получим 33%
		echo "width: $p%;\n";
		$color = "lime";
        if ($ost >= 10 and $ost < 20) $color = "yellow";
        if ($ost < 10) $color = "red";
        echo "background-color: $color;";
      
    ?>
    height: 10px;
}
</style>
 <?


5ac1f89de8cc3569781895.png
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 2
Sanovskiy
@Sanovskiy
Веб-разработчик с 2005 года
switch (true){
    case $ost>=10 && $ost <20:
        $color = "yellow";
        break;
    case $ost<10:
        $color = "red";
        break;
    default:
        $color = 'green';
        break;
}

Как вариант вот так
Ответ написан
slo_nik
@slo_nik Куратор тега PHP
Добрый день.
Вставлю свои пять копеек)))
$ost = 9;
switch (true){
    case $ost >= 10 && $ost < 20:
        $color = "yellow";
        break;
    case $ost < 10:
        $color = "red";
        break;
    case $ost > 20:
        $color = 'green';
        break;
}
?>
<div style="color:<?= $color ?>">test</div>

Default в данном случае, я думаю, лишний. Хотя должно работать и с default, так что проверяйте содержимое переменной $ost. И вообще, существует ли переменная $ost? Где Вы её инициализируете?
$ost = 45;
$p = $ost * 100 / $total;
// далее остальной код
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы