【问题标题】:CSS, PHP, mySQL Loop - change td colour depending on variableCSS, PHP, mySQL Loop - 根据变量改变 td 颜色
【发布时间】:2015-12-07 05:32:36
【问题描述】:

在分配 td 样式类时遇到问题,具体取决于 mySQL 中的变量。我有一个名为“Avail”的字段,所以当有空位时,座位应该变成绿色。但是,到目前为止,当我运行它时,什么都没有发生。

在同一个 html 表单上创建了简单的类,但它似乎不适用于任何数据。

CSS 类定义 >>

<style>
.available {
    background-color: green;
}

.unavailable {
    background-color: red;  
}
</style>

显示何时应用样式的代码>>

<table>
    <tr>
    <th>Seats</th>
    <tr>
    <tr>
        <?php
        $c = 0; // Our counter
        foreach($res as $row) {
            $Avail = 'Avail';
            $seatColour = null;
            if($Avail == 0)
            {
                $seatColour =  '.available';
            } else
            {
                $seatColour = '.unavailable';
            }
            if($c % 20 == 0 && $c != 0) // If $c is divisible by $n...
            {
                // New row
                echo '</tr><tr>';
            }
            $c++;
            ?>
        <td style="$seatColour">
            <form method="POST" name="Seating" action="SWG.php">         
                <?php echo $row['Seat']; ?> <?php echo $row['Avail']; ?> 
                <input type="checkbox" name="Seat[]" value="<?php echo $row['Seat'];?>"/> 
        </td>
        <?php 
        } 
        ?>
    </tr>
</table>

如果有人能指出我错在哪里/我如何错误地分配它,我将不胜感激。

【问题讨论】:

  • 删除.$seatColour = 'available';$seatColour = 'unavailable';
  • 你已经分配了 $Avail = 'Avail';那么你正在检查 if($Avail == 0)。总是会转到其他部分。
  • 尝试删除 .没有运气
  • $seatColour 不是风格。这是类。使用 并删除 . $seatColour = '可用';和 $seatColour = '不可用';
  • PHP 变量在 &lt;?php ?&gt; 标记之外不可用。您不能在 HTML 的 style 属性中引用 $seatColour

标签: php html mysql css loops


【解决方案1】:

您的代码似乎有几个问题:

$Avail = 'Avail';
$seatColour = null;
    if($Avail == 0)
  1. 在上面的代码中,你给 $Avail 赋值了一个字符串,然后你检查它是否为零。我假设这不是故意的。也许您想在此处分配数据库值(而不是字符串)?

    $seatColour = '.available';

  2. 你可能想做$seatColour = "available"。我们不在 jQuery 中,所以不需要点。

    td style="$seatColour"

  3. 你可能想在这里做&lt;td class="&lt;?php echo $seatColour ?&gt;"&gt;

【讨论】:

  • 感谢@Priya 发现缺少的 PHP 标签。已更新代码。
【解决方案2】:

在 td 和 remove 中使用类属性而不是样式。从 $seatColour 如下:

<table>
    <tr>
          <th>Seats</th>
    <tr>
    <tr>
         <?php
        $c = 0; // Our counter
        foreach($res as $row) {
            $Avail = 'Avail';
            $seatColour = null;
            if($Avail == 0)
            {
                $seatColour =  'available';
            } else {
                $seatColour = 'unavailable';
            }

            if($c % 20 == 0 && $c != 0) // If $c is divisible by $n...
            {
               // New row
               echo '</tr><tr>';
            }
            $c++;
        ?>
        <td class="$seatColour"><form method="POST" name="Seating" action="SWG.php">         
        <?php echo $row['Seat']; ?> <?php echo $row['Avail']; ?> 
        <input type="checkbox" name="Seat[]" value="<?php echo $row['Seat'];?>"/> 
        </td>
        <?php } ?>
    </tr>
</table>

【讨论】:

    【解决方案3】:

    而不是 null 尝试 -1 。 或者你把它的名字/值。

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签