Hallo,
ich habe eine XML-Datei folgender Art
<data>
<liste>
<zeile>
<farben_id>4</farben_id>
<farbe>blau</farbe>
</zeile>
...(mehrere Zeilen)
<grid>
<row>
<product_id>1</product_id>
<name>Santa Costume </name>
<price>14.99</price>
<on_promotion>0</on_promotion>
<farbenId>1</farbenId>
</row>
... (mehrere rows)
</grid>
<data>
ich möchte jetzt über eine xslt-Datei ein HTML-Select-Feld mit den Farben als Option-Felder erstellen. Dieses funktioniert soweit. Mein Problem ist, dass meine when-Abfrage zur Vorbelegung (<option selected>) der Farbe aus data/grid/row nicht das gewünschte Ergebnis liefert.
Hier mein xslt-code:
<xsl:element name="select">
<xsl:attribute name="disabled">true</xsl:attribute>
<xsl:for-each select="../../liste/zeile">
<xsl:element name="option">
<xsl:value-of select="farbe"></xsl:value-of>
xsl:choose
<xsl:when test="farben_id = 3">
<xsl:attribute name="selected">true</xsl:attribute>
</xsl:when>
</xsl:choose>
</xsl:element>
</xsl:for-each>
</xsl:element>
"farben_id=3" ist nur ein Test, der immer das 3. Element selektieren soll.
ausprobiert habe ich hier:
- "farben_id=farbenId"
- "data/liste/zeile/farben_id = data/grid/row/farbenId"
- "farben_id=farbenID(data/grid/row)"
Das Attribut selected habe ich hier im Beispiel auf true. Ausprobiert habe ich auch selected.
Mir ist schon klar, dass englisch und deutsch hier durcheinander gehen und somit der Stil schlecht ist. Es geht nur um einen "schnell und schmutzig Test", wie ich ein DropdownFeld über dieses Konstrukt realisieren kann.
Wem die Daten bekannt vorkommen:
Ich versuche momentan das Ajax-Grid Skript aus "AJAX and PHP: Building Responsive Web Applications" um besagtes Dropdown zu erweitern, damit ich danach etwas ähnliches in einem eigenen Projekt realisieren kann.
Danke für eure Hilfe
Torsten