[XSLT] XSLT et formulaires HTML
bobby
-
I'm_Here Messages postés 156 Statut Membre -
I'm_Here Messages postés 156 Statut Membre -
Bonjour tout le monde,
Voilà mon problème. J'ai un fichier XML, qui fait appel à un fichier xsl pour sa mise en page.
Le fichier XSL affiche un formulaire donc le contenu est décrit par le fichier XML. A la fin de ce formulaire, j'ai un bouton submit.
Je souhaite mettre à jour mon fichier XML en fonction de ce que l'utilisateur aura rempli, mais sans passer par ASP, PHP... Est-il possible, comme je souhaite simplement réécrire un fichier XML, de lancer une action XSL à partir de mon bouton submit ?
Merci pour votre aide
Bobby
Voilà mon problème. J'ai un fichier XML, qui fait appel à un fichier xsl pour sa mise en page.
Le fichier XSL affiche un formulaire donc le contenu est décrit par le fichier XML. A la fin de ce formulaire, j'ai un bouton submit.
Je souhaite mettre à jour mon fichier XML en fonction de ce que l'utilisateur aura rempli, mais sans passer par ASP, PHP... Est-il possible, comme je souhaite simplement réécrire un fichier XML, de lancer une action XSL à partir de mon bouton submit ?
Merci pour votre aide
Bobby
A voir également:
- [XSLT] XSLT et formulaires HTML
- Editeur html - Télécharger - HTML
- Espace en html ✓ - Forum HTML
- Nbsp html ✓ - Forum Webmastering
- [**] Balise pour un espace vide en hml. Merci ✓ - Forum Webmastering
- Html download - Télécharger - HTML
5 réponses
Bonjour,
tu peux t'inspirer de ceci :
liste.xml
liste.xsl
affiche.xsl
recherche.js
bon codage @+
tu peux t'inspirer de ceci :
liste.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="affiche.xsl"?> <list> <regle numero="1" nom="Hypallage"> <description>transfert d'adjectif en vue d'attribuer à certains mots d'une phrase ce qui convient à d'autre mots de la même phrase.</description> </regle> <regle numero="2" nom="Epanaphore"> <description>Repetition d'un mot avec une conjonction</description> </regle> <regle numero="3" nom="Epanalepse"> <description>le même mot est en tête et en fin d'une phrase</description> </regle> </list>
liste.xsl
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/> <xsl:param name="numero"/> <xsl:template match="list"> <xsl:variable name="nombre"> <xsl:value-of select="count(//regle[@numero=$numero])"/> </xsl:variable> <xsl:choose> <xsl:when test="$nombre>=1"> <xsl:apply-templates select="//regle[@numero=$numero]"/> </xsl:when> <xsl:otherwise> <div>il n'y a aucune règle répondant au critère sélectionné</div> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template match="regle"> <div style="color:white;font-size:150%;margin-left:20px"><xsl:value-of select="@nom"/></div> <xsl:apply-templates/> </xsl:template> </xsl:stylesheet>
affiche.xsl
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="/">
<html>
<head>
<title>Moteur de recherche</title>
<style type="text/css">
<![CDATA[
body {
background:black;
}
form {
margin-left:150px;
}
input.si {
background:orange;
width:200px;
font-family:verdana;
color:black;
padding:10px;
}
input.butt {
background:whitesmoke;
font-family:verdana;
color:gray;
border:0px;
margin-left:5px;
}
.nf {
color:orange;
font-family:verdana;
font-size:27px;
padding:10px;
}
]]>
</style>
<script src="recherche.js" type="text/javascript"></script>
</head>
<body>
<h1 style="text-align:center; color:orange">Kezako this !!</h1>
<hr style="color:white" />
<form name="form1">
<span style="color:whitesmoke;font:17px/14px verdana;">le nombre de mots est :<xsl:value-of select="count(//regle)" /></span><xsl:text> </xsl:text>
<input class="si" name="code" type="text" />
<input class="butt" name="button" type="button" onClick="recherche()" value="Recherche" />
</form>
<div id="nfig" class="nf"></div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
recherche.js
var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
xslDoc.async = false;
xslDoc.load("liste.xsl");
xmlDoc.validateOnParse = false;
xmlDoc.load("liste.xml");
var xslt = new ActiveXObject("Msxml2.XSLTemplate");
xslt.stylesheet = xslDoc;
var xslProc = xslt.createProcessor();
xslProc.input = xmlDoc;
function recherche()
{
xslProc.addParameter("numero", form1.code.value);
xslProc.transform();
nfig.innerHTML = xslProc.output;
}
bon codage @+
j'pense que ça doit etre possible avec un lien en javascript sur ton boutton de submit ... je m'explique :
au lieu du
tu mets un
avec au préalable dans ton <head>, biensur un
Oué je te mets ça en algo , la j'ai pas le temps de le faire à la mimine la...
en gros c'est ça que tu voulais non ?!
Zep3k!GnO
_/______________________________\_
/On est des rangers mec, des rangers !\
\_____________..._________________/
au lieu du
<input type="submit" value="OK">
tu mets un
<input type="button" onClick="javascript:goXSL()" value="OK">
avec au préalable dans ton <head>, biensur un
<script language="javascript>
function goXSL()
{
//Algo style :
Ouvrir une fenetre en poup
Le docuemnt appelé dans la fentre st ton xsl avec des parametres
Application du xsl (donc changement du xml )
faire un refresh sur la fenetre parent (parent.window.reload() )pour l'affichage de la mofification
//FIN Algo style
}
</script>
Oué je te mets ça en algo , la j'ai pas le temps de le faire à la mimine la...
en gros c'est ça que tu voulais non ?!
Zep3k!GnO
_/______________________________\_
/On est des rangers mec, des rangers !\
\_____________..._________________/
Ca correspond effectivement à ce que je souhaite faire... mais comment passes-tu les paramètres du formulaire au fichier xsl ?
Merci en tout cas pour ton coup de main
Merci en tout cas pour ton coup de main
mais comment passes-tu les paramètres du formulaire au fichier xsl ?
Oula c'est la que c'est le bordel :
Pour moi, il faudrait que tu fasse un feuillet xsl avec la fonction à appeller avec les paramètres que t'inclus dans ta feuille xsl principale.
Et ton feuillet xsl avec ta fonction et ses paramètres, tu le créé à la volé, dynamiquement avec Php . . .
voilà dans l'esprit , après en pratique, j'avoue c'est cossu !
bon courage . . .
Zep3k!GnO
_/______________________________\_
/On est des rangers mec, des rangers !\
\_____________..._________________/
Oula c'est la que c'est le bordel :
Pour moi, il faudrait que tu fasse un feuillet xsl avec la fonction à appeller avec les paramètres que t'inclus dans ta feuille xsl principale.
Et ton feuillet xsl avec ta fonction et ses paramètres, tu le créé à la volé, dynamiquement avec Php . . .
voilà dans l'esprit , après en pratique, j'avoue c'est cossu !
bon courage . . .
Zep3k!GnO
_/______________________________\_
/On est des rangers mec, des rangers !\
\_____________..._________________/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question