2016-11-15 58 views
1

我有下面的代码,我想添加一个元素到我的if语句中,但我不确定如何处理这个问题。我期望做的是在它的其他部分添加背景颜色。在此:在php if语句中为元素添加背景颜色

else { 
     $status_img = '<img src="../icons/collection/checkmark.png" alt="Goal Complete">'; 
} 

所以,如果$status不为0,我想设置背景颜色类goal-box-right

有反正我可以通过PHP来操纵CSS吗?

foreach ($rows as $row) { 
      $status = $row['status']; 
      if ($status == 0) { 
       $status_img = '<img src="../icons/collection/x-sign.png" alt="Goal Not Complete">'; 
      } 
      else { 
       $status_img = '<img src="../icons/collection/checkmark.png" alt="Goal Complete">'; 
      } 
      $goal_date = $row['date']; 
      $fixed_goal_date = fixDate($goal_date); 
      $html = ""; 
      $html .= '<div class="goal-box" id="comment-'.$row['id'].'">'; 
      $html .= '<div class="goal-box-left">'; //added 
      $html .= '<div class="goal-post-status">'.$status_img. '</div>'; 
      $html .= '</div>'; //added 
      $html .= '<div class="goal-box-right">'; //added 
      $html .= '<div class="goal-post-title">'.$row['title']. '</div>'; 
      $html .= '<div class="goal-post-date">'.$fixed_goal_date. '</div>'; 
      $html .= '<div class="goal-post-description">'.$row['description']. '</div>'; 
      $html .= '</div>'; //added 
      $html .= '</div>'; 
+0

什么问题呢? –

+1

为什么不将背景色设置为内联样式? – connexo

+0

问题是我不知道如何通过我的if语句将背景颜色设置为不同的颜色。 – Paul

回答

2

分开逻辑 - 根据状态添加一个CSS类,然后设置样式表中的颜色。

$class = $status != 0 ? 'status-nonzero' : ''; 

$html .= '<div class="goal-box-right ' . $class . '">'; 

CSS:

.goal-box-right.status-nonzero { background-color: #foo } 

优势是保持风格逻辑在CSS它属于和远离正在生成的HTML代码的位置。

+0

感谢这种方法。我用这个,它很好。再次感谢。 – Paul

0

那么,有什么问题:

$style = ''; 
if ($status == 0) { 
    $style = ' style="your-style:here"'; 
    $status_img = '<img src="../icons/collection/x-sign.png" alt="Goal Not Complete">'; 
} 
else { 
    $status_img = '<img src="../icons/collection/checkmark.png" alt="Goal Complete">'; 
} 

// ... 
$html .= '<div class="goal-box-right"' . $style . '>'; //added 
+0

工作很好。谢谢。 – Paul

+1

内联风格正在工作,但不完全优雅... – arkascha