2016-11-15 70 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