Probleme mit xsl:attribute
Coopar
- xsl
Hallo,
ich hab da ein problem mit dem Tag xsl:attribute.
Eventuell liegt es auch gar nicht genau daran!
Folgendes:
Ich habe eine XML-Datei in der ich zum einem ein Tag <Auswahlbox> habe, welches wiederum das Attribut Box hat.
Das Tag Auswahltag hat dann wiederum untergeorndete Tags <Auswahl><Inhalt>xyz</Inhalt></Auswahl>.
In der XML-Datei sind mehrere solcher "Auwahlboxen".
Diese "Auswhalboxen" sollen nun in Drop-Down-Menüs in HTML überführt werden. Dafür habe ich folgende Anweisung in der xsl-Datei:
<xsl:for-each select="Java/Auswahlfelder/Auswahlbox">
<tr>
<td>
<xsl:value-of select="@Box" />:
</td>
<td>
<form action=" " method="post">
<xsl:attribute name="name">
<xsl:value-of select="@Box" />
</xsl:attribute>
<select size="1">
<xsl:attribute name="name">
<xsl:value-of select="@Box" />
</xsl:attribute>
<xsl:for-each select="Auswahl">
<option>
<xsl:value-of select="Auswahloption" />
</option>
</xsl:for-each>
</select>
</form>
</td>
natürlich kommt auch noch </xsl:for-each>, allerding erst später...
Zu jedem dieser Drop-Down-Listen will ich nun einen Button erstellen, der das jeweilige ausgewählte Attribut in eine Textbox schreibt. Der Text, der allerdings vorher schon in der textbox stand, soll erhalten bleiben, und vor jedem neuen Eintrag soll ein Leerzeichen erscheinen.
Die Textbox ist folgendermaßen erstellt:
<form action=" " method="post" name="Box">
<textarea rows="10" cols="30" name="Scriptbox" readonly="readonly"/>
<br/>
</form>
Im gesamten Dokument soll es nur eine einzige Textbox geben.
Nun will ich die Buttons erstellen, was übrigens auch in der oben geposteten for-each-Schleife passieren soll. Und zwar folgendermaßen:
<form action=" " method="post">
<xsl:attribute name="name">
<xsl:value-of select="concat('button', @Box)" />
</xsl:attribute>
<input type="button" value="Einfügen">
<xsl:attribute name="name">
<xsl:value-of select="concat('button', @Box)" />
</xsl:attribute>
<xsl:attribute name="onclick">
<xsl:value-of select="concat('document.Box.Scriptbox.value = document.Box.Scriptbox.value.concat(" ", document.', @Box, '.', @Box, '.value)')" />
</xsl:attribute>
</input></form>
Das erste @Box ganz unten soll auf die jeweilige Form verweisen. Das zweite @Box auf die Drop-Down-Liste.
Das "" "" ist dafür da, dass später dort " " steht und somit ein Leerzeichen geschrieben wird.
Das problem ist nun, dass wenn ich auf einen deer Buttons klicke, ein Leerzeichen geschrieben wird, nicht aber der value der drop-down-liste.
Wenn man das Leerzeichen weglässt, wird halt kein Leerzeichen mehr geschrieben, aber der jeweilige Value immer noch nicht!
Also, könnt ihr mir helfen?
Vielen Dank
Gruß
Coopar
Hi,
Also, könnt ihr mir helfen?
ja: Schau Dir den Quellcode der Ausgabe an.
Cheatah
Hi,
Also, könnt ihr mir helfen?
ja: Schau Dir den Quellcode der Ausgabe an.
Cheatah
???
Hallo,
Also, könnt ihr mir helfen?
ja: Schau Dir den Quellcode der Ausgabe an.
Was er meinte ist wohl, dass du nachsehen müsstest, was im erzeugten HTML-Code steht. Das würde dir schon einen ersten Hinweis liefern ob dein XSL fehlerhaft ist oder nur der JavaScript teil.
Übrigens du hast laut deinem Code zwei Formulare mit dem Namen "@Box" (und auch deine Select-liste heisst so!)
Grüße
Thomas