2017-11-16 1 views
1

Ich versuche, css Inline-Stil auf der Grundlage einer PHP-Variable Wert hinzufügen. Ich versuchte es mit ternären Operator, und auch ich konvertierte den Variablenwert in float. Aber das CSS wird nicht wie erwartet angewendet.Putting Inline-Stil mit ternären Operator 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> 

Aber das einfache Inline-Styling funktioniert gut.

+1

"Echo" scheint zu fehlen? –

+0

@OfirBaruch .. Putting Echo zeigt einen Fehler .. Ich habe solche Styling in anderen Projekten verwendet .. und sie funktionieren gut (ohne Echo) .. weiß nicht, warum es dieses Mal nicht funktioniert .. – Azima

+0

> –

Antwort

1

Sie verpassen den Echo-Befehl vor der Bedingung. Wenn die Bedingung den Wert true oder false zurückgibt, werden die Anweisungen zurückgegeben und nicht erforderlich.

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

Nebenbei bemerkt, eine bessere Praxis:

Da sowohl der zurückgegebenen Strings Stil sind, gibt keinen Sinn, es zu wiederholen (Entwickler sind faul:]). So können Sie einfach schreiben:

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

danke ... früher habe ich verwendet und deshalb funktionierte es .. danke – Azima

+0

danke für diesen faulen Tipp. :) sehr geschätzt ... – Azima

+0

Gern geschehen, viel Glück. –

1

Nicht

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

aber

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

oder

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

AHHH .. ja .. Ich habe versucht, letzteres mit meinem vorherigen .. und das kommt mit "Echo" ... vielen Dank .. :) – Azima