Announcement

Collapse
No announcement yet.

Form vereinfachen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Form vereinfachen

    Hallo

    Vielleich hat jemand von euch eine Idee oder Hinweis.

    Habe bis jetzt Inputelemente von HTML Form/masken so gelöst:

    Code:
    <!-- name [name] -->
    <xsl:variable name="name">
    	<xsl:choose>
    		<xsl:when test="boolean(name)"><xsl:value-of select="name/@id"/></xsl:when>
    		<xsl:otherwise><xsl:value-of select="@id"/>/name</xsl:otherwise>
    	</xsl:choose>
    </xsl:variable>	
    <label class="name" for="id886292">name</label><br/>
    <input class="name" type="text" id="id886292" value="{name/text()}" name="{$name}"/>
    <br/>

    Das funktioniert auch.
    (Anmerkung: Alle Elemente des XML Doc haben eine ID welche aus der dB kommt (wenn in dB vorhanden) - zum posten wird diese im name Attribut an PHP übergeben)

    Meine Frage - gibts eine elegantere Lösung?


    Vielen Dank im Voraus.
    Zuletzt editiert von mr_sol; 25.06.2011, 08:25.

  • #2
    Mit XSLT 2.0 gibt es "if (bedingung) then ausdruck else ausdruck", da reicht dann
    Code:
    <input class="name" type="text" id="id886292" value="{name/text()}" name="{if (name) then name/@id else concat(@id, '/name')}"/>
    Mit XSLT 1.0 braucht man nicht unbedingt die Variable:
    Code:
    <input class="name" type="text" id="id886292" value="{name/text()}">
      <xsl:attribute name="name">
    	<xsl:choose>
    		<xsl:when test="boolean(name)"><xsl:value-of select="name/@id"/></xsl:when>
    		<xsl:otherwise><xsl:value-of select="@id"/>/name</xsl:otherwise>
    	</xsl:choose>
      </xsl:attribute>
    </input>
    aber wesentlich kompakter oder eleganter ist das sicher nicht.

    Comment


    • #3
      Besser als meine alte Lösung, hier hasts Probleme mit der Variable gegeben.

      Besten Dank

      Comment

      Working...
      X