Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[XSL] Nieuw Probleem

Pagina: 1
Acties:
  • 236 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Beste Tweakers,

Ik zit gedeeltelijk nog met hetzelfde probleem in mijn maag :'(

Ik heb het volgende stukje XML code:
code:
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="ISO-8859-1" ?>
<gegevens>
    <firstname>DRMS</firstname>
    <lastname>Achternaam</lastname>
    <gender>
        <male />
        <female />
    </gender>
</gegevens>

en het volgende stuk XSL:
code:
1
2
3
4
5
6
7
8
9
10
<xsl:choose>
    <xsl:when test="gegevens/gender/male">
        <input type="radio" name="gender" value="m" class="form">man 
        </input>
    </xsl:when>
                            <xsl:otherwise>
        <input type="radio" name="gender" value="f" class="form">vrouw
        </input>
    </xsl:otherwise>
</xsl:choose>

Het resultaat hiervan is een enkele checkbox.

Nou wil ik het volgende bewerkstelligen. Ik hoop dat dit dan ook mogelijk is. Ik wil in ieder geval twee checkboxen op het scherm krijgen, waarvan er 1'tje default gechecked dient te worden.

Ik begrijp dan ook dat hierbovenstaande niet de juiste codes hiervoor zijn. Ik heb het e.e.a. geprobeerd maar kom maar niet tot het gewenste resultaat. Kan iemand me helpen?

Alvast bedankt

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 21-11 07:48
Op maandag 08 oktober 2001 11:22 schreef drms het volgende:
Beste Tweakers,
Beste mede-tweaker,

In mijn oplossing moet je XML er iets anders uit zien. Als het geslacht klopt, moet ie nl. een inhoud bevatten.
code:
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="ISO-8859-1" ?>
<gegevens>
    <firstname>DRMS</firstname>
    <lastname>Achternaam</lastname>
    <gender>
        <male>yes</male>
        <female />
    </gender>
</gegevens>

De XSL wordt dan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<xsl:template match="gender">
    <xsl:apply-templates />
</xsl:template>

<xsl:template match="male|female">
<xsl:element name="input">
    <xsl:attribute name="type">radio</xsl:attribute>
    <xsl:attribute name="name">gender</xsl:attribute>
    <xsl:attribute name="value"><xsl:value-of select="./name()" /></xsl:attribute>
    <xsl:attribute name="class">form</xsl:attribute>
    <xsl:if test=".">
      <xsl:attribute name="checked">checked</xsl:attribute>
    </xsl:if>
</xsl:element>
</xsl:template>

disclaimer: het is niet getest, so don't kill me if it doesn't works :)

Verwijderd

Topicstarter
Beste freak007,

zou je hierbij wat commentaar kunnen geven van wat er nou precies waar gebeurt. Want eerlijk gezegd, zijn dit nieuwe commando's voor me en ik raak er niet zoveel wijzer van. Mijn excuses voor deze vraag, maar ik ben een redelijke newbie op dit gebied.

Alvast bedankt!

Verwijderd

Topicstarter
Kijk ik zal eens de situatie uitleggen waar ik mee bezig ben, om een duidelijke beeld te schetsen van het probleem.

IK heb een formulier dat dynamisch moet zijn. De waardes die in het formulier moeten komen, moeten uit het XML document gehaald worden. Ik wil de gebruiker de mogelijkheid geven om een checkbox aan te klikken bij geslacht. Dus dathij de mogelijkheid krijgt om een man of een vrouw te kiezen.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11 01:34
<off-topic>

Ik zou mijn XML file anders indelen (zoals ik pas ook al zei).
code:
1
2
3
<gender>
  <male/>
</gender>

of
code:
1
2
3
<gender>
  <female/>
</gender>

Ook:
code:
1
2
3
4
<gender>
   <male>yes</male>
   <female>no</female>
</gender>

vind ik eigenlijk niet mooi. Je kan zo namelijk niet fraai in een DTD of XML Schema eisen dat alleen een man of een vrouw is geselecteerd. Met mijn eerste oplossing (alleen male of female als subelement) is dat heel simpel.

Eigenlijk staat dit echter volkomen los van jouw probleem, want met alle mogelijke oplossingen kan je jouw situatie prima oplossen.

</off-topic>

De makkelijkste oplossing is om gewoon zowel in de when als de otherwise een tweede checkbox op te nemen die niet is geselecteerd. Simpel toch?

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Misschien een hele domme vraag/opmerking, maar wat is de code/tag wat ik moet gebruiken om te zorgen dat de radio box geselecteerd/gechecked is. Ik heb al in het document geprobeerd met checked en selected, maar geen van beide werkt. Hij geeft een error.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Type=RADIO
Used for attributes that accept a single value from a set of alternatives. Each radio-button field in the group should be given the same name. Only the selected radio button in the group generates a name/value pair in the submitted data. Radio buttons require an explicit VALUE= attribute.
<INPUT TYPE="radio" VALUE="1" ...> dus

Verwijderd

Topicstarter
Maar dan kom ik toch nog ff terug op de radio boxen. Ik kom maar niet tot een oplossing :?

Ik kan het radio box probleem op twee manier doen naar mijn inziens.

Manier 1:

Ik maak twee radio boxen aan buiten de when/otherwise lus en d.m.v. de when/otherwise lus, zorg ik dat een van de radio boxen selected wordt.

Manier 2:

Ik maak in de when en in de otherwise lus twee radio boxen aan (male en female), dus in totaal vier. Bij de when zorg ik dat de male radio box geselecteerd wordt en bij de ontherwise zorg ik ervoor dat de female box geselecteerd is.

Het lijkt mij dat manier 1 de voorkeur geniet.

Beide manieren is me tot heden nog niet gelukt, maar ik blijf het proberen. Nog idee'en??

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11 01:34
drms: Ik kan het radio box probleem op twee manier doen naar mijn inziens.
Dat klopt helemaal :) Allebei de methoden zijn mogelijk. methode 1 is iets ingewikkelder, maar ook wel vrij simpel op te lossen. Methode 2 is erg makkelijk. Methode 2 vind ik ook niet echt enorme nadelen hebben (maar het is inderdaad niet super fraai).

Waarom lukt methode 1 of 2 niet? Laat eens zien wat voor XML je gebruikt en wat je XSL is. Die kan ik dan aanpassen en zo een voorbeeld geven.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Beste MBravenboer en Freak007,

Het is inmiddels gelukt. Ik wou jullie bedanken voor jullie hulp. Als ik weer tegen probleem oploop horen jullie het.

DRMS

OH ja, ik heb voor de tweede manier gekozen!

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 21-11 07:48
Op dinsdag 09 oktober 2001 09:43 schreef drms het volgende:
Beste MBravenboer en Freak007,

Het is inmiddels gelukt. Ik wou jullie bedanken voor jullie hulp. Als ik weer tegen probleem oploop horen jullie het.
En weer een blije XSLT'er :P
Pagina: 1