在PHP中设置CSS元素类

时间:2013-12-29 01:00:43

标签: php html css

我正在尝试修改一些PHP代码,以便在循环遍历循环时为其创建的元素分配一个唯一的CSS类。从理论上讲,我只想尝试一个与屏幕相呼应的“名称”,并将其作为一个类分配给下一个创建的元素......这是初始的相关代码循环:

<?php foreach($my_exams as $exam):
  if(!$exam->is_taken) continue;?>
  <tr><td><?php echo $exam->name;?></td></tr>
<?php endforeach;?>

简单地说,我正在尝试将$exam->name回显的字符串分配给该<tr>元素的类。像

这样的东西
<tr class="<?php echo $exam->name;"><td><?php echo $exam->name;?></td></tr>

虽然我确定我不正确地处理引号或语法(至少,无论如何,它最终都不会将类分配给<tr>

3 个答案:

答案 0 :(得分:3)

如果您停止进出PHP这将有所帮助,它可能会更容易以这种方式阅读:

<?php 
foreach($my_exams as $exam){
    if($exam->is_taken){
        echo '<tr class="'.$exam->name.'"><td>'.$exam->name.'</td></tr>';
    }
}

如果你想做双引号,你需要在它们回显时转义它们,但是你可以使用一个变量而不连接一串字符串。 (一旦使用对象/数组,它有助于用{}

包围每个变量
echo "<tr class=\"{$exam->name}\"><td>{$exam->name}</td></tr>";

参考:http://us2.php.net/manual/en/language.types.string.php#language.types.string.syntax.double

答案 1 :(得分:1)

<tr class="<? echo $exam->name ?>"><td><? echo $exam->name ?></td></tr>

答案 2 :(得分:-1)

其他人已经像我一样回答了这个问题,但我想补充一下来解释这个问题。为什么这不是一个“愚蠢”的问题,而是一些奇怪的副产品,一些CMS系统混合HTML和&amp; PHP在他们的模板中。简而言之:他们将模板格式化为漂亮的HTML,使其看起来干净整洁。很容易为非编码人员,但这样做他们混合使用内联PHP使得PHP编码看起来比现在更困难。意思是这段代码:

<?php foreach($my_exams as $exam):
  if(!$exam->is_taken) continue;?>
  <tr><td><?php echo $exam->name;?></td></tr>
<?php endforeach;?>

很容易就是这样:

<?php
foreach($my_exams as $exam) {
  if ($exam->is_taken) {
    echo '<tr><td>'
       . $exam->name
       . '</td></tr>'
       ;
  }
}
?>

从编程的角度来看,现在更容易解析,所以现在可以这样做:

<?php
foreach($my_exams as $exam) {
  if ($exam->is_taken) {
    echo sprintf('<tr%s><td>', ' class="' . $exam->name . '"')
       . $exam->name
       . '</td></tr>'
       ;
  }
}
?>

我所做的是使用sprintf' class="' . $exam->name . '"'放入''。 %s表示应该放在那里的字符串,字符串是sprintf语句中逗号之后的字符串。我发现这更容易编码,测试和调试。但总的来说,使PHP编码更容易的关键是在需要将任何逻辑放在HTML上下文时使用直接PHP。