Hallo,
Super. Genau so wollte ich das.
Danke dir!!!
Bitte ;-)
Habs selbst einfach nicht hinbekommen, aber wenn ich mir den Code so ansehe macht das alles Sinn.
Noch eine Frage:
Wie muss ich denn den Code abändern, damit der die Einzelansicht neu im aktuellen Fenster anzeigt (also dann halt nur noch die Einzelansicht und nicht unter die Ursprungstabelle).
Z.B. so:
Grüße
Thomas
------------------------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>Autoliste</title>
<style type="text/css">
.einzeln { display:none; }
</style>
<script type="text/javascript">
var arrAutos = new Array(<xsl:apply-templates select="autos" mode="jsarray" />);
var autosTabelle = "<xsl:value-of select="generate-id(autos)" />";
<![CDATA[
function displayLayer(strID) {
document.getElementById(strID).style.display = "block";
}
function hideLayer(strID) {
document.getElementById(strID).style.display = "none";
}
function showAuto(strID) {
for(i=0; i<=arrAutos.length-1; i++) {
if(arrAutos[i] != strID) {
hideLayer(arrAutos[i]);
}
else
displayLayer(strID);
}
}
]]>
</script>
</head>
<body>
<xsl:apply-templates select="autos" mode="alle" />
<xsl:apply-templates select="autos" mode="einzeln" />
</body>
</html>
</xsl:template>
<xsl:template match="autos" mode="alle">
<div id="{generate-id(.)}">
<h1>Autoliste</h1>
<p/>
<table border="1">
<tr>
<th>Nr.</th>
<th>Foto</th>
<th>Marke</th>
<th>Preis</th>
<th>Adresse</th>
<th>PS</th>
<th>Erstzulassung</th>
<th>Bauart</th>
<th>Farbe</th>
<th>Kilometerleistung</th>
<th>Extras</th>
</tr>
<xsl:apply-templates select="auto[marke='Maserati']" mode="alle"/>
</table>
</div>
</xsl:template>
<xsl:template match="auto" mode="alle">
<xsl:variable name="ID" select="generate-id(.)" />
<tr>
<td>
<xsl:number format="1"/>
</td>
<td>
<xsl:apply-templates select="foto"/>
</td>
<td>
<a href="#" onclick="hideLayer(autosTabelle);showAuto('{$ID}');"><xsl:value-of select="marke" /></a>
</td>
<xsl:apply-templates select="preis | adresse | ps | EZ | art | farbe | kilometer | extras" mode="alle"/>
</tr>
</xsl:template>
<xsl:template match="foto">
<img align="left">
<xsl:attribute name="src"><xsl:value-of select="@quelle"/></xsl:attribute>
</img>
</xsl:template>
<xsl:template match="preis | adresse | ps | EZ | art | farbe | kilometer | extras" mode="alle">
<td>
<xsl:value-of select="."/>
</td>
</xsl:template>
<xsl:template match="autos" mode="einzeln">
<xsl:apply-templates select="auto" mode="einzeln" />
</xsl:template>
<xsl:template match="auto" mode="einzeln">
<div id="{generate-id(.)}" class="einzeln">
<table border="1">
<tr>
<th colspan="3">
<xsl:value-of select="marke" />
</th>
</tr>
<tr>
<td>Preis</td>
<td><xsl:value-of select="preis" /></td>
<td rowspan="8">
<xsl:apply-templates select="foto"/>
</td>
</tr>
<tr>
<td>Adresse</td>
<td><xsl:value-of select="adresse" /></td>
</tr>
<tr>
<td>PS</td>
<td><xsl:value-of select="ps" /></td>
</tr>
<tr>
<td>Erstzulassung</td>
<td><xsl:value-of select="EZ" /></td>
</tr>
<tr>
<td>Bauart</td>
<td><xsl:value-of select="art" /></td>
</tr>
<tr>
<td>Farbe</td>
<td><xsl:value-of select="farbe" /></td>
</tr>
<tr>
<td>Kilometerleistung</td>
<td><xsl:value-of select="kilometer" /></td>
</tr>
<tr>
<td>Extras</td>
<td><xsl:value-of select="extras" /></td>
</tr>
</table>
<p>
<a href="#" onclick="hideLayer('{generate-id(.)}');displayLayer(autosTabelle);">Tabelle Anzeigen</a>
</p>
</div>
</xsl:template>
<xsl:template match="autos" mode="jsarray">
<xsl:for-each select="auto">
xsl:text"</xsl:text><xsl:value-of select="generate-id(.)" />xsl:text"</xsl:text><xsl:if test="position() != last()">xsl:text, </xsl:text></xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>