2017-11-16 5 views
1

PHP変数の値に基づいてCSSのインラインスタイルを追加しようとしています。 私は三項演算子でそうしようとしましたが、変数値をfloatに変換しました。しかし、CSSは期待どおりに適用されていません。3進演算子を使用してインラインスタイルを設定するPHP

 <tbody> 
     <?php 
     $totalLeaveTaken = 0.00; 
     $totalBalance = 0.00; 
      foreach ($GetEmployeeLeaveBalance as $member): 
       $totalLeaveTaken += $member['usedDays']; 
       $totalBalance += $member['Remaining_Leave_Days']; 
       $leaveBalance = floatval($member['Remaining_Leave_Days']); 
      ?> 
      <tr> 
       <td><?php echo $member['title']; ?></td> 
       <td><?php echo $member['maxDays']; ?></td> 
       <td><?php echo $member['usedDays']; ?></td> 
       <!-- <td><?php echo gettype($leaveBalance);?></td> --> 
       <td 
       <?php 
       ($leaveBalance < 0) ? 
       "style='background-color:red;'" : "style='background-color:green;'" 
       ?> 
       > 
       <?php echo $member['Remaining_Leave_Days']; ?>  
       </td> 
      </tr> 
     <?php endforeach; ?> 
     <tr> 
      <td></td> 
      <td></td> 
      <td style="background-color: #33CCFF; font-weight: bold;">Total: <?php echo number_format($totalLeaveTaken, 2); ?></td> 
      <td style="background-color: #33CCFF; font-weight: bold;">Total: <?php echo 
      number_format($totalBalance, 2); ?></td> 
     </tr> 
     </tbody> 

しかし、単純なインラインスタイリングはうまくいきます。

+1

を "エコー" は不足しているようですか? –

+0

@OfirBaruch ..エコーを表示するとエラーが表示されます。他のプロジェクトでこのようなスタイリングを使用しています。エコーなしで正常に動作しています。なぜこの時間に動作しないのかわかりません。 – Azima

+0

答えて

1

条件の前にechoコマンドがありません。 条件が真または偽を返す場合、基本的にステートメントは返されており、エコーされる必要はありません。

<?php 
echo ($leaveBalance < 0) ? "style='background-color:red;'" : "style='background-color:green;'" 
?> 

追記、より良い練習:

返される文字列の両方のスタイルなので、それを繰り返すことにはポイントは(開発者は怠惰です:])がありません。だから、あなたは、単に書くことができます。

<td style='background-color: <?php echo ($leaveBalance < 0) ? "red" : "green" ?>'> 
+0

ありがとう...前に私はを使用していたので、それは働いていた。ありがとう – Azima

+0

その怠け者のチップのおかげで。 :)ありがとうございました... – Azima

+0

あなたは大歓迎です。 –

1

ない

<?php 
    ($leaveBalance < 0) ? "style='background-color:red;'" : "style='background-color:green;'" 
?> 

しかし

<?php 
    echo (($leaveBalance < 0) ? "style='background-color:red;'" : "style='background-color:green;'"); 
?> 

または

<?= (($leaveBalance < 0) ? "style='background-color:red;'" : "style='background-color:green;'"); ?> 
+0

AHHH ..はい..私は以前のもので後者を試しました..そしてそれは 'エコー'と一緒に来ます...ありがとうたくさん.. :) – Azima

関連する問題