Archief - XSL variabelen update

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Kheos

Legacy Member
stel ik heb 1 xml file met een hoop data in(maar die is willekeurig, ook de structuur omdat deze door de user wordt opgebouwd). via een xsl file trek ik daar een menu uit (bepaalde tags hebben bepaalde attributen en die list ik dan). nu wil ik natuurlijk dat als er op het item in het menu wordt geklikt dat in een div ofzo de content die bij dat item hoort wordt getoond.
ik dacht dit te doen door via ajax de xsl aan te passen (de variabele/parameter tags gebruiken binnen xsl?) maar ik weet niet direct hoe?

HTML:
<li>item1</li>
<li>item2</li>
<ul>
<li>subitem2.1</li>
<li>subitem2.2</li>
</ul>
<li>item3</li>
HTML:
<div>hier zit dan de content van item 1, of subitem 2.2 of... afhankelijk op welk menu item wordt geklikt</div>

n00bslayer

Legacy Member
Gebeurt dit alles op de client, of wordt de xml transformatie op de server uitgevoerd voor de navigatie - en wil je de inhoud vervolgens ophalen én laten transformeren door de client?

Als je dit client-side wilt doen, kan je inderdaad gebruik maken van javascript (zie deze javascript XML XSLT parser), en anders maak je een serverside script aan die de xsl parameter direct aanwend in je serverside transformatie alvorens de html respons alsnog met behulp van javascript in je div te injecteren.

Meer info zou handig zijn :)

Kheos

Legacy Member
n00bslayer zei:
Gebeurt dit alles op de client, of wordt de xml transformatie op de server uitgevoerd voor de navigatie - en wil je de inhoud vervolgens ophalen én laten transformeren door de client?

Als je dit client-side wilt doen, kan je inderdaad gebruik maken van javascript (zie deze javascript XML XSLT parser), en anders maak je een serverside script aan die de xsl parameter direct aanwend in je serverside transformatie alvorens de html respons alsnog met behulp van javascript in je div te injecteren.

Meer info zou handig zijn :)
wel, het belangrijkste is dat de pagina liefst niet gerefreshed word, dus javascript/ajax leek een goed idee(als ik server sided ga zit ik altijd met een page refres?)

de bedoeling is dus dat die xsl pagina info van items laat zien. omdat ik op voorhand niet kan weten hoeveel en welke items er zijn moet die xsl dus dynamisch worden opgebouwd, dus ik dacht dat ik met xsl param of xsl variable kon werken die ik dan aanstuur via javascript/ajax.
iets als onclick="roep xsl pagina op met $itemid" zodat die itemid meegeeft aan die xsl pagina en die xsl pagina daarop kan filteren en enkel de info van dat item laat zien. als ik die xsl zou opbouwen via php, dan zit ik -dacht ik toch- met een refresh van de pagina, en dat wil ik dus niet

n00bslayer

Legacy Member
Mja, je kan ervoor kiezen om die xml transformatie door de server te laten uitvoeren (met of zonder page refresh) of door de client. In de javascript XML XSLT parser is het mogelijk om 1 of meerdere parameters aan je xsl mee te geven alvorens deze xml op de client zelf te transformeren (waar jij het dus waarschijnlijk op hebt).

Ik heb ook nog een paar voorbeelden liggen hoe je met parameters in xsl werkt, tegenover de xml bestanden waar de transformatie op wordt uitgevoerd.

Kheos

Legacy Member
hoe zou ik moeten aanpakken om dat serversided te doen zonder page refresh?
dan heb ik een .php pagina die afhankelijk van welke parameters hij binnenkrijgt de xslt pagina aanpast? maar dan moet die zichzelf aanroepen en dat zit je toch met een refresh? niet? kan ik dat dan via ajax in die xslt aanpakken om die php pagina zichzelf te laten aanroepen? hoe?

n00bslayer

Legacy Member
De vraag is echter als in jouw geval server-side xsl transformaties geen overkill zullen zijn.

Als je het toch serverside wil doen, roep je het resultaat van deze serverside transformatie ook op met een xmlhttprequest om een page refresh te vermijden, maar zo gebeurt de transformatie toch op de server

Probeer het eens op de client-side manier (het datumveld werkt niet helemaal, het geheel is meer een proof of concept dan wat anders).

Je zoekt het volgens mij veel te ver, wat je dus wil doen is een xml bestand en een xsl bestand inladen (met javascript), de xsl parameters dynamisch meegeven (met javascript) en vervolgens transformeren (met behulp van javascript).

De server-side manier is dus het xml en xsl bestand inladen (op de server), de xsl parameters met javascript doorgeven aan de server en vervolgens transformeren (op de server), het resultaat wordt dan vervolgens ingeladen met javascript.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan