Tabelle Markieren
Markus
- javascript
0 Markus0 Gernot Back
0 Markus0 Markus0 Gernot Back
0 Gernot Back
0 Markus0 Ashura
Hallo,
Ich habe ein Problem für folgende Problematik:
Ein HTML Tabelle: es soll eine Zeile markiert werden, wenn diese angeklickt wird.
Soweit ist dies noch kein Problem. Wenn eine neue Zeile angeklickt wird, soll die vorher angeklickte Zeile wieder normal werden, und die neue markiert werden.
ich habe wirklick keine Ahnung über so ein Problem:
normal:
tr onclick="style.background='#dfdfdf'"
Kann mir jemand helfen?
Nachtrag:
So dass in dieser tabelle immer nur eine Zeile markiert ist!!
Hallo Markus,
Ein HTML Tabelle: es soll eine Zeile markiert werden, wenn diese angeklickt wird.
Soweit ist dies noch kein Problem. Wenn eine neue Zeile angeklickt wird, soll die vorher angeklickte Zeile wieder normal werden, und die neue markiert werden.
Ich würde dieser Tabelle eine ID verpassen. Dann könnte ich alle ihre Zeilen über
var meineZeilen = document.getElementById('meineTabelle').getElementsByTagname('TR')
~~~ ansprechen.
Bei jedem Klick auf eine Zeile durchläufst du das Array in einer For-Schleife bis meineZeilen.length (exklusive) und setzt dabei alle Zeilenhintergründe wieder auf die Normalfärbung zurück. Danach setzt du die angeklickte Zeile auf die Markierungsfarbe.
Gruß Gernot
Hallo Gernot,
vielen dank für deine schnelle Antwort.
Mit Javaschript bin ich jedoch nicht so fit.
Ich kenne mich mit php, C und c++ ein bischen aus.
Kannst du mir ein Beispiel nennen?
Vielen dank!!
Grüße
Markus
Nachtrag:
Das Problem: Es handelt sich um ein Oscommerce Shop in der Entwicklung. Die Zeilen Anzahl variiert erheblich.
Gruß
Markus
Hallo Markus,
Nachtrag:
Das Problem: Es handelt sich um ein Oscommerce Shop in der Entwicklung. Die Zeilen Anzahl variiert erheblich.
Mein Tipp war ja auch gerade für eine variable Zeilenanzahl gedacht, mit meineZeilen.length erwischst du in jedem Fall alle Zeilen deiner Tabelle. For-Schleifen und die Eigenschaft length für Arrays gibt es in PHP, C und C++ auch, soweit ich mich erinnere.
Gruß Gernot
Hallo nochmal,
(...) die Eigenschaft length für Arrays gibt es in PHP (...) auch, soweit ich mich erinnere.
Kann sein, dass es in PHP 'count' oder so heißt.
Gruß Gernot
Hallo,
in php heißt dies count, ist richtig!!
Gruß
Markus
Ich habe die Lösung getestet (DEMO),
hoffe ich nur, dass dies auch so in meinem Shop anwendbar ist,
dort es es etwas komplezierter.
Das Script wird Global in der index.php eingearbeitet.
Während die Tabelle gespalten ist (Ohne Kopfzeile -- ist extra ausgegeben) und das ganze in einem extra frame. Natürlich wird alles als *.php aufgerufen. Werde ich am Montag sehen.
Hier mein Demo Code:
<html>
<head>
<title>Aufbau einer Tabelle</title>
</head>
<body>
<script type="text/javascript">
<!--
function setStyle(obj,e)
{
if(e)
for (var i = 0; i < document.getElementsByTagName("tr").length; i++) {
document.getElementsByTagName("tr")[i].style.backgroundColor = "#ffffff";
}
obj.style.backgroundColor = '#dfdfdf';
}
//-->
</script>
<h1>Tabelle mit Gitternetzlinien</h1>
<table border="1">
<tr onclick='setStyle(this,true)'>
<th>Berlin</th>
<th>Hamburg</th>
<th>München</th>
</tr>
<tr onclick='setStyle(this,true)'>
<td>Miljöh</td>
<td >Kiez</td>
<td>Bierdampf</td>
</tr>
<tr onclick='setStyle(this,true)'>
<td>Buletten</td>
<td>Frikadellen</td>
<td>Fleischpflanzerl</td>
</tr>
</table>
</body>
</html>
Grüße Markus
Hallo,
Vielen Dank, ich werde es am Montag ausprobieren.
mfg
Markus
Hallo Gernot.
Mein Tipp war ja auch gerade für eine variable Zeilenanzahl gedacht, mit meineZeilen.length erwischst du in jedem Fall alle Zeilen deiner Tabelle.
Oder gleich mit http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#table@title=rows.
Einen schönen Samstag noch.
Gruß, Ashura