根据PHP变量值

时间:2015-11-19 14:12:35

标签: javascript php

我使用PHP检索存储在MySQL表中的数据,然后使用以下代码将其显示在页面上:

CSS

.date {
color:red;
font-weight:bold;
}

HTML / PHP

<span class="date">'.$date_available.'</span>

这很好用,但我需要根据$ date_available变量中的值分配不同的类。例如:如果变量包含值SOLD,则span类应如上所示。如果变量包含值NOW,则应为:

HTML / PHP

<span class="date-two">'.$date_available.'</span>

CSS

.date-two {
color:green;
font-weight:bold;
}

这可能是PHP还是需要使用JavaScript?

5 个答案:

答案 0 :(得分:1)

<?php
$cls = $data_available == "SOLD" ? "date-two" : "date";
echo "<span class=\"{$cls}\">{$date_available}</span>";

编辑:解释。 检查您的变量是否包含&#34; SOLD&#34;,并根据该检查保存要在变量中使用的css类的名称。 那么,你不输出固定的类字符串,而是输出变量的内容。

答案 1 :(得分:1)

根据您是否有一个或多个状态,您可以使用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'回答

另一种选择是使用不同的类,只需知道数据库可以输出的内容,并为其创建前缀类。

e.g。 soldboughtnegotiating是某些州(示例)

你在这里可以做的只是

$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都将获得正确的类,并且没有太多的PHP麻烦。

祝你好运!

答案 2 :(得分:0)

是的,可能。您可以使用if来决定跨度应该使用哪个类。 您可以使用else if轻松添加新课程。

if($date_available == "SOLD") {
    echo '<span class="date">'.$date_available.'</span>';
} else {
   echo '<span class="date-two">'.$date_available.'</span>';
}

答案 3 :(得分:0)

在路上改变课程:

  <?  if ($date_available == 'whatever'){ ?>
       <span class="date"><? echo $date_available ?></span>
  <?  }else{ ?>
       <span class="date-two"><? echo $date_available ?></span>
  <?  } ?>

答案 4 :(得分:0)

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>";