[英]How to change CSS class depending on the value of variable in JavaScript?
[英]Change class depending on PHP variable value
我正在使用PHP检索存储在MySQL表中的数据,然后使用以下代码将其显示在页面上:
的CSS
.date {
color:red;
font-weight:bold;
}
HTML / PHP
<span class="date">'.$date_available.'</span>
这可以正常工作,但是我需要根据$ date_available变量中的值分配一个不同的类。 例如:如果变量包含值SOLD,则跨度类应如上所示。 如果变量包含值NOW,则应为:
HTML / PHP
<span class="date-two">'.$date_available.'</span>
的CSS
.date-two {
color:green;
font-weight:bold;
}
PHP可以做到这一点吗?还是需要使用JavaScript?
<?php
$cls = $data_available == "SOLD" ? "date-two" : "date";
echo "<span class=\"{$cls}\">{$date_available}</span>";
编辑:解释。 您检查变量是否包含“ SOLD”,并根据该检查保存要在变量中使用的css类的名称。 那么,您不会输出固定的类字符串,而是输出变量的内容。
根据您是否具有一个或多个状态,可以使用if () {} else {}
构造,对作业使用array()
,或者如果您有多个需要相同状态的状态,则switch
语句也可能可用要输出的类。
例如使用数组:
$classes = array(
'sold' => 'date-two',
'...' => '...' //example values
);
// imagining that $data_available = 'SOLD'
echo '<span class="'. ($classes[strtolower($data_available)] || 'date') .'">';
或使用switch语句
$cls = 'date';
switch (strtolower($data_available)) {
case 'sold':
case 'sold2': // switch statements allow multiple 'cases' to be grouped for the same output.
$cls = 'date-two';
break;
case '...':
$cls = '...';
break;
default:
$cls = 'date';
break;
}
对于if示例,我将看看Tobias的答案
另一个选择是不使用其他类,而只是知道数据库可以输出什么并为此创建前缀的类。
例如, sold
, bought
和negotiating
是某些州(示例)
您在这里可以做的就是
$cls = 'date-' . strtolower($data_available); // if $data_available is sold it will output date-sold
echo '<span class=". $cls .">';
然后在CSS中,您可以执行以下操作:
.date-sold {
width: 420px;
background: green;
}
.date-bought {
width: 720px;
background: white;
}
.date-negotiating {
width: 30px;
background: transparent;
}
这样,您将永远是安全的,并且如果您的数据库输入是一致的,那么您的所有div都将获得正确的类,并且使用正确的CSS,而不会产生太多的PHP麻烦。
祝好运!
是的,它有可能。 您可以使用if来决定该范围应使用哪个类。 您可以轻松地通过else if
添加新类。
if($date_available == "SOLD") {
echo '<span class="date">'.$date_available.'</span>';
} else {
echo '<span class="date-two">'.$date_available.'</span>';
}
在以下方式更改班级:
<? if ($date_available == 'whatever'){ ?>
<span class="date"><? echo $date_available ?></span>
<? }else{ ?>
<span class="date-two"><? echo $date_available ?></span>
<? } ?>
switch( $date_available ){
case 'sold':$class='date-two';break;
case 'available':$class='date';break;
case 'low-stock':$class='date-three';break;
/* etc */
}
echo "<span class='$class'>$date_available</span>";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.