Avatar billede nc85 Nybegynder
30. juni 2005 - 11:38 Der er 9 kommentarer

anden farve i hveranden række?

Hey alle..

Hurtigt spm - Hvordan får jeg en anden farve i hveranden række?

Noget af min kode:
------------------------------
        if ($tagName == "ROW")

        {
           
          echo "
            <tr><td width='120'>" . utf8_decode(trim($this->swift_name)) . "</td>";
            echo "<td width='44'>" . trim($this->swift_code) . "</td>";
            echo "<td width='36'>" . trim($this->multiply) . "</td>";
            echo "<td width='104'>" . utf8_decode(trim($this->buy_cash)) . "</td>";
            echo "<td width='85'>" . utf8_decode(trim($this->buy_tc)) . "</td>";
            echo "<td width='86'>" . utf8_decode(trim($this->sell_cash)) . "</td>";
            echo "<td width='105'>" . utf8_decode(trim($this->sell_tc)) . "</td>";
            echo "<td width='151'>" . utf8_decode(trim($this->CurrencyGuide)) . "</td>
            <td></td></tr>";
          # echo "<td>" . trim($this->base_swift) . "</td></tr></table>";
          # echo "<td>" . trim($this->insideitem) . "</td></tr></table>";
            //Osv....
         
            $this->swift_code = "";
            $this->swift_name = "";
            $this->multiply = "";
            $this->buy_cash = "";
            $this->buy_tc = "";
            $this->sell_cash = "";
            $this->sell_tc = "";
            $this->CurrencyGuide = "";
            $this->base_swift = "";
            $this->insideitem = false;
        }
Avatar billede olebole Juniormester
30. juni 2005 - 11:45 #1
<ole>

Det er svært at svare på, uden den relevante kode, men du kan f.eks. gøre sådan i en while-løkke:

$inx = 0;
$s = "";
while ($row=mysql_fetch_assoc($MYSQL_RESULT)) {
  $bgCol = ($inx%2==0)? "#ff0000" : "#ffff00";
  $s .= "<tr style=\"background-color:".$bgCol."\"> ... mere kode her ... </tr>";
  $inx++;
}
print $s;

/mvh
</bole>
Avatar billede nc85 Nybegynder
30. juni 2005 - 11:46 #2
Så får du da lige hele koden:

    <?php
        echo "<table width=572 cellpadding=0 cellspacing=4 border=0><tr>";
        echo "<td width=120><strong>Navne:</strong></td><td width=44><strong>Valuta</strong></td><td width=36><strong>Pr:</strong></td><td width=104><strong>FOREX køber rejsecheck</strong></td>";
        echo "<td width=85><strong>FOREX køber sedler</strong></td><td width=86><strong>FOREX sælger sedler</strong></td>";
        echo "<td width=105><strong>FOREX sælger rejsecheck</strong></td>
        <td width=151><strong>Valutaguide 100DKK i udenlandsk valuta</strong></td>
        <td></td></tr>";

$xmlFile = "http://www.forexvaluta.dk/ratesxml.asp?id=220";
class RSSParser
{

    var $insideitem = false;
    var $tag = "";
    var $swift_code = "";
    var $swift_name = "";
    var $multiply = "";
    var $buy_cash = "";
    var $buy_tc = "";
    var $sell_cash = "";
    var $sell_tc = "";
    var $CurrencyGuide = "";
    var $base_swift = "";

    function startElement($parser, $tagName, $attrs)
    {
        if ($this->insideitem)
        {
            $this->tag = $tagName;
        }
        elseif ($tagName == "ROW")
        {
            $this->insideitem = true;
        }
    }
   
    function unhtmlspecialchars( $string )
    {
        $string = str_replace ( '&amp;', '&', $string );
        $string = str_replace ( '&#039;', '\'', $string );
        $string = str_replace ( '&quot;', '\"', $string );
        $string = str_replace ( '&lt;', '<', $string );
        $string = str_replace ( '&gt;', '>', $string );
     
        return $string;
    }

    function endElement($parser, $tagName)
    {
        if ($tagName == "ROW")

        {
           
          echo "
            <tr><td width='120'>" . utf8_decode(trim($this->swift_name)) . "</td>";
            echo "<td width='44'>" . trim($this->swift_code) . "</td>";
            echo "<td width='36'>" . trim($this->multiply) . "</td>";
            echo "<td width='104'>" . utf8_decode(trim($this->buy_cash)) . "</td>";
            echo "<td width='85'>" . utf8_decode(trim($this->buy_tc)) . "</td>";
            echo "<td width='86'>" . utf8_decode(trim($this->sell_cash)) . "</td>";
            echo "<td width='105'>" . utf8_decode(trim($this->sell_tc)) . "</td>";
            echo "<td width='151'>" . utf8_decode(trim($this->CurrencyGuide)) . "</td>
            <td></td></tr>";
          # echo "<td>" . trim($this->base_swift) . "</td></tr></table>";
          # echo "<td>" . trim($this->insideitem) . "</td></tr></table>";
            //Osv....
         
            $this->swift_code = "";
            $this->swift_name = "";
            $this->multiply = "";
            $this->buy_cash = "";
            $this->buy_tc = "";
            $this->sell_cash = "";
            $this->sell_tc = "";
            $this->CurrencyGuide = "";
            $this->base_swift = "";
            $this->insideitem = false;
        }
    }

    function characterData($parser, $data)
    {
        if ($this->insideitem)
        {
            switch ($this->tag)
            {
                case "SWIFT_CODE":
                    $this->swift_code .= $data;
                    break;
                case "SWIFT_NAME":
                    $this->swift_name .= $data;
                    break;
                case "MULTIPLY":
                    $this->multiply .= $data;
                    break;
                case "BUY_CASH":
                    $this->buy_cash .= $data;
                    break;
                case "BUY_TC":
                    $this->buy_tc .= $data;
                    break;
                case "SELL_CASH":
                    $this->sell_cash .= $data;
                    break;
                case "SELL_TC":
                    $this->sell_tc .= $data;
                    break;
                case "CURRENCYGUIDE":
                    $this->CurrencyGuide .= $data;
                    break;
                case "BASE_SWIFT":
                    $this->base_swift .= $data;
                    break;
            }
        }
    }
}

$xml_parser = xml_parser_create();
$rss_parser = new RSSParser();
xml_set_object($xml_parser,$rss_parser);
#ini_set('allow_call_time_pass_reference','1');
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
$fp = fopen($xmlFile,"r") or die("Error reading XML data.");
while ($data = fread($fp, 4096))
{
    xml_parse($xml_parser, $data, feof($fp))
        or die(sprintf("XML error: %s at line %d",
        xml_error_string(xml_get_error_code($xml_parser)),
        xml_get_current_line_number($xml_parser)));
}
fclose($fp);
xml_parser_free($xml_parser);
echo "</table>";
?>
Avatar billede mccookie Seniormester
30. juni 2005 - 11:47 #3
Tja, den lette løsning så'n som jeg lige husker den er en lille funktion:

Formoder du henter noget data fra MySQL

$i = "-1";

if($i == 1) {
            echo "blablabla style=\"style1\";
            $i = $i * -1; } else {
     
            echo "blablabla style=\"style1\";
            $i = $i * -1; }

Det er en nem måde hvis du henter data fra en databass, jeg har selv brugt det mange gange ;)
Avatar billede olebole Juniormester
30. juni 2005 - 11:52 #4
mccookie >> Skal koden slet ikke gøre noget?  :)

nc85 >> Du kan bare bruge den løsning, jeg skrev
Avatar billede nc85 Nybegynder
30. juni 2005 - 12:01 #5
der ligger det så, jeg lige præcis ikke henter noget ud fra SQL -
Som du kan se skriver jeg tingene ud her fra en XML fil:

echo "
            <tr><td width='120'>" . utf8_decode(trim($this->swift_name)) . "</td>";
            echo "<td width='44'>" . trim($this->swift_code) . "</td>";
            echo "<td width='36'>" . trim($this->multiply) . "</td>";
            echo "<td width='104'>" . utf8_decode(trim($this->buy_cash)) . "</td>";
            echo "<td width='85'>" . utf8_decode(trim($this->buy_tc)) . "</td>";
            echo "<td width='86'>" . utf8_decode(trim($this->sell_cash)) . "</td>";
            echo "<td width='105'>" . utf8_decode(trim($this->sell_tc)) . "</td>";
            echo "<td width='151'>" . utf8_decode(trim($this->CurrencyGuide)) . "</td>
            <td></td></tr>";
Avatar billede nc85 Nybegynder
30. juni 2005 - 12:08 #6
olebole

Så vil du have jeg skriver det sådanne her:

$inx = 0;
$s = "";
while ($row=mysql_fetch_assoc($MYSQL_RESULT)) {
  $bgCol = ($inx%2==0)? "#ff0000" : "#ffff00";
  $s .= "<tr><td width='120'>" . utf8_decode(trim($this->swift_name)) . "</td>";
            echo "<td width='44'>" . trim($this->swift_code) . "</td>";
            echo "<td width='36'>" . trim($this->multiply) . "</td>";
            echo "<td width='104'>" . utf8_decode(trim($this->buy_cash)) . "</td>";
            echo "<td width='85'>" . utf8_decode(trim($this->buy_tc)) . "</td>";
            echo "<td width='86'>" . utf8_decode(trim($this->sell_cash)) . "</td>";
            echo "<td width='105'>" . utf8_decode(trim($this->sell_tc)) . "</td>";
            echo "<td width='151'>" . utf8_decode(trim($this->CurrencyGuide)) . "</td>
            <td></td></tr>";";
  $inx++;
}
print $s;
Avatar billede nc85 Nybegynder
30. juni 2005 - 12:24 #7
Nå, fik løst det med noget Javascript i stedet...

function alternate(id){
if(document.getElementsByTagName){ 
  var table = document.getElementById(id); 
  var rows = table.getElementsByTagName("tr"); 
  for(i = 0; i < rows.length; i++){         
//manipulate rows
    if(i % 2 == 0){
      rows[i].className = "even";
    }else{
      rows[i].className = "odd";
    }     
  }
}
}

--------------

i BODY

<body onload="alternate('thetable')">

også husk at lave 2 styles der hedder even og odd!

---------------

Bare til andre hvis de skulle få brug for det...
Avatar billede mccookie Seniormester
30. juni 2005 - 17:51 #8
Olebole>> Det var kun stammen til løsningen jeg leverede og regnede lidt med at nc85 selv smed resten ind.

Mit forslag var myntet på et SQL udtræk

Slet mit svar og send points til de øvrige ;)

Nyd det dejlige vejr ;)
///McCookie
Avatar billede mccookie Seniormester
05. juli 2005 - 14:01 #9
Lukketid ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester