Avatar billede kimox Nybegynder
03. juni 2005 - 09:30 Der er 22 kommentarer og
1 løsning

Hjælp til farve skift?

Hej eksperter.

jeg har følgende script:

                <?
                require "adm/db.php";
$col0 = "ffffff"; 
$col1 = "#EAEAEA"; 
$i=0; 
++$i;
$col = "col" . $i%2;
echo "<table width=\"100%\"  border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
  <tr bgcolor=\"5175A5\">
    <td width=\"7%\"><div align=\"center\"><span class=\"bil\">Billede:</span></div></td>
    <td width=\"33%\"><div align=\"left\"><span class=\"bil\">Model:</span></div></td>
    <td width=\"20%\"><div align=\"center\"><span class=\"bil\">Regist:</span></div></td>
    <td width=\"13%\"><div align=\"center\"><span class=\"bil\">Km.:</span></div></td>
    <td width=\"16%\"><div align=\"center\"><span class=\"bil\">D&oslash;re:</span></div></td>
    <td width=\"11%\"><div align=\"center\"><span class=\"bil\">Pris:</span></div></td>
  </tr>";
$result = mysql_query("select * from bixen_vrag order by dato desc");
while($row = mysql_fetch_array($result)){
$id = $row['id'];
$model = $row['model'];
$regist = $row['regist'];
$km = $row['km'];
$pris = $row['pris'];
$upfile = $row['upfile'];
  echo "<tr bgcolor=" . $$col . ">\n
    <td></td>\n
    <td>$model</td>\n
    <td>$regist</td>\n
    <td>$km km.</td>\n
    <td>$dore</td>\n
    <td>$pris kr.</td>\n
  </tr>";
  }
echo "</table>";
?>

men det virker ikke som det skal.. den tager fint nok med at felterne skal blive grå.. men ikke med at de skal skifte til hvid efter hver anden linie.. hvorfor ? kan i hjælpe mig?

Mvh
Avatar billede sukos Juniormester
03. juni 2005 - 09:36 #1
$result = mysql_query("select * from bixen_vrag order by dato desc");
$a = 0;
while($row = mysql_fetch_array($result)){
$a++;

    if($a%2 == 0) {
    $bgcolor = "ffffff";
    }else{
    $bgcolor = "#EAEAEA";
    }


$id = $row['id'];
$model = $row['model'];
$regist = $row['regist'];
$km = $row['km'];
$pris = $row['pris'];
$upfile = $row['upfile'];
  echo "<tr bgcolor=" . $bgcolor . ">\n
Avatar billede kimox Nybegynder
03. juni 2005 - 09:47 #2
Ja okay :D. Jeg siger tusind tak. smider du et svar?
Avatar billede sukos Juniormester
03. juni 2005 - 09:50 #3
Kan jeg godt, men smid et svar selv også!
150 point er alt for meget for det her!
Avatar billede kimox Nybegynder
03. juni 2005 - 09:53 #4
Jamen kan du så ik hjælpe her:

  echo "<tr onMouseOver=\"this.bgColor ='#EFEFEF'\" onMouseOut=\"this.bgColor=\" . $bgcolor . \"\" bgcolor=" . $bgcolor . " >\n
    <td></td>\n
    <td>$model</td>\n
    <td><center>$regist</center></td>\n
    <td><center>$km km.</center></td>\n
    <td><center>$dore</center></td>\n
    <td>$pris kr.</td>\n
  </tr>";
  }
echo "</table>";

jeg skal have den til at skifte farve når musen kommer hen over, og så tilbage til den farve som den var..

så må point passe :)
Avatar billede sukos Juniormester
03. juni 2005 - 10:18 #5
Ja, se det er jo straks en anden snak!
Men for nu at kikke koder fra phpmyadmin
<html><head><title>tr_over hentet fra phpmyadmin</title>

<script type="text/javascript">

function setPointer(theRow, theRowNum, theAction, theDefaultColor, thePointerColor, theMarkColor)
{
    var marked_row = new Array;
    var theCells = null;

    // 1. Pointer and mark feature are disabled or the browser can't get the
    //    row -> exits
    if ((thePointerColor == '' && theMarkColor == '')
        || typeof(theRow.style) == 'undefined') {
        return false;
    }

    // 2. Gets the current row and exits if the browser can't get it
    if (typeof(document.getElementsByTagName) != 'undefined') {
        theCells = theRow.getElementsByTagName('td');
    }
    else if (typeof(theRow.cells) != 'undefined') {
        theCells = theRow.cells;
    }
    else {
        return false;
    }

    // 3. Gets the current color...
    var rowCellsCnt  = theCells.length;
    var domDetect    = null;
    var currentColor = null;
    var newColor    = null;
    // 3.1 ... with DOM compatible browsers except Opera that does not return
    //        valid values with "getAttribute"
    if (typeof(window.opera) == 'undefined'
        && typeof(theCells[0].getAttribute) != 'undefined') {
        currentColor = theCells[0].getAttribute('bgcolor');
        domDetect    = true;
    }
    // 3.2 ... with other browsers
    else {
        currentColor = theCells[0].style.backgroundColor;
        domDetect    = false;
    } // end 3

    // 3.3 ... Opera changes colors set via HTML to rgb(r,g,b) format so fix it
    if (currentColor.indexOf("rgb") >= 0)
    {
        var rgbStr = currentColor.slice(currentColor.indexOf('(') + 1,
                                    currentColor.indexOf(')'));
        var rgbValues = rgbStr.split(",");
        currentColor = "#";
        var hexChars = "0123456789ABCDEF";
        for (var i = 0; i < 3; i++)
        {
            var v = rgbValues[i].valueOf();
            currentColor += hexChars.charAt(v/16) + hexChars.charAt(v%16);
        }
    }

    // 4. Defines the new color
    // 4.1 Current color is the default one
    if (currentColor == ''
        || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) {
        if (theAction == 'over' && thePointerColor != '') {
            newColor              = thePointerColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;
            marked_row[theRowNum] = true;
        }
    }
    // 4.1.2 Current color is the pointer one
    else if (currentColor.toLowerCase() == thePointerColor.toLowerCase()
            && (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])) {
        if (theAction == 'out') {
            newColor              = theDefaultColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;
            marked_row[theRowNum] = true;
        }
    }
    // 4.1.3 Current color is the marker one
    else if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) {
        if (theAction == 'click') {
            newColor              = (thePointerColor != '')
                                  ? thePointerColor
                                  : theDefaultColor;
            marked_row[theRowNum] = (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])
                                  ? true
                                  : null;
        }
    } // end 4

    // 5. Sets the new color...
    if (newColor) {
        var c = null;
        // 5.1 ... with DOM compatible browsers except Opera
        if (domDetect) {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].setAttribute('bgcolor', newColor, 0);
            } // end for
        }
        // 5.2 ... with other browsers
        else {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].style.backgroundColor = newColor;
            }
        }
    } // end 5

    return true;
} // end of the 'setPointer()' function
</script>
</head>
<body>


<table><tr>
    <td>Mouseover hentet fra phpmyadmin:</td>
<?php
$a = 0;
for($i = 0; $i < 10; $i++) {
$a++;

    if($a%2 == 0) {
    $bgcolor = "#FFFFFF";
    }else{
    $bgcolor = "#EAEAEA";
    }
?>
</tr>
<tr onmouseover="setPointer(this, 0, 'over', '<?php echo $bgcolor; ?>', '#CCFFCC', '#FFCC99');" onmouseout="setPointer(this, 0, 'out', '<?php echo $bgcolor; ?>', '#CCFFCC', '#FFCC99');" onmousedown="setPointer(this, 0, 'click', '<?php echo $bgcolor; ?>', '#CCFFCC', '#FFCC99');">
    <td bgcolor="<?php echo $bgcolor; ?>">Skift farve ved mouseover</td>
<?php
}
?>
</tr></table>
</body></html>
Avatar billede trevi Nybegynder
03. juni 2005 - 10:23 #6
:-o .. vildt mann ! hehe
Avatar billede sukos Juniormester
03. juni 2005 - 10:23 #7
Og så fjerner du jo blot
onmousedown="setPointer(this, 0, 'click', '<?php echo $bgcolor; ?>', '#CCFFCC', '#FFCC99');"

hvis der ikke skal skiftes farve ved "onmousedown"
Avatar billede kimox Nybegynder
03. juni 2005 - 10:24 #8
Ja det er lidt vildt. men trir vist det virker :)
Avatar billede kimox Nybegynder
03. juni 2005 - 10:24 #9
tror even
Avatar billede sukos Juniormester
03. juni 2005 - 10:25 #10
Og du kan jo gemme Javascriptet i en fil, "from_phpmyadmin.js", lagt i roden af dit domæne, som du så loader ind på siden med:

<script src="/from_phpmyadmin.js" type="text/javascript" language="javascript"></script>
Avatar billede sukos Juniormester
03. juni 2005 - 10:27 #11
ehh, mellem dine headtags:

<html><head><title>kokokofk</title>

<script src="/from_phpmyadmin.js" type="text/javascript" language="javascript"></script>

</head>
<body>
............
</body>
</html>
Avatar billede kimox Nybegynder
03. juni 2005 - 10:36 #12
jepsen.. men sidder stadig lige og prøve at få det til at virke helt.. for den gøre faktisk noget af det samme så det ikke virker stadig :(
Avatar billede kimox Nybegynder
03. juni 2005 - 10:37 #13
Men det er den der onmouseout der ikke virker som den skal
Avatar billede kimox Nybegynder
03. juni 2005 - 10:39 #14
Prøver lige selv ;) jeg siger mange tak for hjælpen !
Avatar billede sukos Juniormester
03. juni 2005 - 10:39 #15
?
Virker fint her i IE og Netscape
Avatar billede sukos Juniormester
03. juni 2005 - 10:39 #16
Hvilken browser bruger du?
Avatar billede trevi Nybegynder
03. juni 2005 - 10:39 #17
sukos kan du også hjælpe mig? :

http://www.eksperten.dk/spm/622970
Avatar billede kimox Nybegynder
03. juni 2005 - 10:41 #18
okay mærkeligt :D.. jeg prøver lige at teste det.. prøver lige at gøre helt som du har gjort ;) . Jeg bruger IE 6
Avatar billede sukos Juniormester
03. juni 2005 - 10:41 #19
De plejer at være ret seje i javascript, dem som laver phpmyadmin :O)
Altså få deres javascript "crossbrowser" brugbart.
Avatar billede kimox Nybegynder
03. juni 2005 - 10:50 #20
nemlig ja :). Vil ik konkurre med dem
Avatar billede bojo Nybegynder
03. juni 2005 - 11:49 #21
Er den farveskift ikke vildt "overkill" kimox egen løsning virker (efter lidt tilretning)

et meeget lille eks:

<?PHP

$out = 'yellow'; //eller brug farvekoder og andrefarver
$over = 'green';

echo "<table>\n";
echo "<tr bgcolor=$out onMouseOver=\"this.bgColor='$over';\" onMouseOut=\"this.bgColor='$out';\">
    <td></td>\n
    <td>$model</td>\n
    <td><center>$regist</center></td>\n
    <td><center>$km km.</center></td>\n
    <td><center>$dore</center></td>\n
    <td>$pris kr.</td>\n
  </tr>\n";
echo "</table>\n";

?>
Avatar billede kimox Nybegynder
06. juni 2005 - 08:29 #22
Ja den er noget mere enkelt, men nu har jeg fået den anden til at virke griner, så skidt med det ;). ellers tak !
Avatar billede kimox Nybegynder
06. juni 2005 - 08:29 #23
-lukket-
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