Изменение цвета тд зависит от статуса

#php #css

#php #css

Вопрос:

Если я хочу изменить bgcolor на весь tr, это сработает.

     if ($sta =="1"){
            print("<tr bgcolor=#2E0854>n");
        }
    if ($sta =="2"){
            print("<tr bgcolor=#000000>n");
        }

    print("<td>$sta</td>n");
    print("<td>$name</td>n");
    print("<td>$info</td>n");
    print("<td>$day</td>n");
    print("</tr>n");
    }
  

Но когда я пытаюсь изменить цвет тд только на одном тд, я не могу заставить его работать

      if ($sta =="1"){
            echo "<style type='text/css'>
            td.farg {
                background-color: #2E0854;
            }
            </style>";
        }
     if ($sta =="2"){
            echo "<style type='text/css'>
            td.farg {
                background-color: #000000;
            }
            </style>";
        }



    print("<td>$sta</td>n");
    print("<td class='farg'>$name</td>n");
    print("<td>$info</td>n");
    print("<td>$day</td>n");
    print("</tr>n");
    }
  

Он дает одинаковый цвет td для всех, даже если у некоторых есть статус 1, а у некоторых статус 2

Комментарии:

1. В CSS используйте background-color . Приветствия.

2. Где находится ваш открывающий тег tr ?

3. Если этот код должен быть в цикле?

4. да, этот код находится в цикле

5. но не хотел публиковать ненужный код

Ответ №1:

Я думаю, что лучше работать с динамическими именами классов css, а не изменять цвет напрямую.

CSS:

 tr.sta-1 {
    background-color: #2E0854;
}
tr.sta-2 {
    background-color: #000000;
}
  

или для td:

 tr.sta-1 td.farg {
    background-color: #2E0854;
}
tr.sta-2 td.farg {
    background-color: #000000;
}
  

PHP:

 print("<tr class="sta-$sta">n");
print("<td>$sta</td>n");
print("<td class="farg">$name</td>n");
print("<td>$info</td>n");
print("<td>$day</td>n");
print("</tr>n");
  

Комментарии:

1. решит ли это проблему td, которую вы имеете в виду? или мне просто нужно изменить его на td.sta-1

2. Я добавил часть для td к своему ответу.