2017-06-09 8 views
0

Ich versuche, eine bedingte Formatierung für die $row->cap24hrChange Ergebnisse zu tun. Wenn es < 0 ist, möchte ich, dass der Wert rot gefärbt wird, andernfalls sollte er grün sein. Ich bekomme keine Antwort vom Skript.Javascript bedingte Formatierung in PHP

<table><head><style> 
td {text-align: right;} 
</style></head><table> 
    <thead> 
     <tr> 
      <th>#Rank</th> 
      <th>Name</th> 
      <th>Price</th> 
      <th>Mkt Cap</th> 
      <th>Volume</th> 
      <th>Supply</th> 
      <th>24h(%)</th> 
     </tr> 
    </thead> 
    <tbody> 
     <?php function compare($a, $b) { 
      return intval($a->position24) - intval($b->position24); 
     } 

     $json = file_get_contents('http://www.coincap.io/front'); 
     $data = json_decode($json); 
     usort($data, 'compare'); 
     ?> 
     <?php foreach ($data as $row) { ?> 
     <tr> 
      <td><?= $row->position24; ?></td> 
      <td><?= $row->long; ?></td> 
      <td><?= number_format($row->price, 4); ?><\td> 
      <td><?= number_format($row->mktcap, 2); ?><\td> 
      <td><?= number_format($row->volume, 2); ?><\td> 
      <td><?= number_format($row->supply, 2); ?><\td> 
      <td><?= $row->cap24hrChange; echo "<script type=\"text/javascript\"> var trTags = document.getElementsByTagName("td"); for (var i = 0; i < trTags.length; i++) { var tdEightEl = trTags[i].children[7]; if (tdEightEl.innerText < 0) {tdEightEl.style.color = "red"; } else if (tdEightEl.innerText > 0) {tdEightEl.style.color = "green"; } }</script>";?></td> 
     </tr> 
     <?php } ?> 
    </tbody> 
</table> 

EDIT

Auf einem sehr verwandten beachten: Wie konnte ich mich um Arbeit, die Code, um Symbole auf der rechten Seite (↑ und ↓) für Werte> 0 und < 0 bzw. aufzunehmen?

EDIT (2)

ich es dachte, mit Hilfe von $foo = "bar".$foo

<td style="color:<?php if($row->cap24hrChange > 0){ echo "green"; $row->cap24hrChange = $row->cap24hrChange . " ";}else if($row->cap24hrChange < 0){ echo "red"; $row->cap24hrChange = $row->cap24hrChange . " ";}?>"><?= $row->cap24hrChange;?></td> 

Antwort

1

Sie kein Javascript verwenden, das zu tun. Es ist etwas, was Sie beim Laden der Seite wissen können, damit Sie es statisch setzen können.

<td style="color:<?php if($row->cap24hrChange > 0){ echo "green"; }else if($row->cap24hrChange < 0){ echo "red"; }?>"><?= $row->cap24hrChange;?></td> 

Aber Vorsicht Sie haben nicht den Fall $ row-> cap24hrChange == 0 in Ihrem Code.

+0

Das ist wirklich nett! Danke =) – tklein