From: Benoit Bouyé (bouye@medias-cite.org)
Date: 23/07/2004 - 15:41
Je vous remercie de votre réponse.
En effet tout ceci est articulé autour de la pagination :)
$nb = nombre d'element <q> à afficher par page
$pagecourante = la page en cours, par defaut à 1. Cette valeur est incrémenté dans ma page PHP de traitement.
Voici un bout de mon code XML
<rub titre="Identite">
<q statut="obligatoire" id="q1" type="numeric" inf="18" sup="70">
<lib>Quel est votre age ?</lib>
</q>
<q statut="facultatif" id="q2" type="text">
<lib>Quel est votre nom ?</lib>
</q>
</rub>
Ma XSL traduit ce XML sous forme de formulaire. Tout fonctionne bien, j'enregistre mes données dans un fichier xml temporaire (solution que vous m'aviez conseillée lors d'un précedent post et qui fonctionne tres bien :))) et je suis actuellement en train de chercher le meilleur moyen de vérifier les données entrées par l'utilisateur. J'avais d'abord pensé à javascript mais je pense qu'un traitement côté serveur sera beaucoup plus performant.D'après vous, vaut-il mieux effectuer cette vérification lors de chaque page du formualaire, ou à la fin du remplissage par l'utilisateur ?
Merci de votre aide !
---------- Original Message ----------------------------------
From: Eric van der Vlist <vdv@dyomedea.com>
Reply-To: xml-tech@xmlfr.org
Date: Fri, 23 Jul 2004 16:55:40 +0200
>
>On Fri, 2004-07-23 at 16:41, Benoit Bouy=?ISO-8859-1?Q?=E9?= wrote:
>> Bonjour, j'ai un probleme que je n'arrive pas à résoudre en XSL
>>
>> <xsl:template name="champs_javascript">
>> <xsl:for-each select="/root/form/rub/q">
>> <xsl:if test="position() <= ($nb * $pagecourante) and position() > ($nb * ($pagecourante - 1))and(./@statut='obligatoire')">
>> "<xsl:value-of select="@id"/>",
>> </xsl:if>
>> </xsl:for-each>
>> </xsl:template>
>>
>> Lors de l'appel de ce template j'obtiens une chaine du type "q1","q2","q4",
>> Cette chaine est un tableau que je passe à un javascript.
>> Ce que je souhaiterai c'est que pour le dernier element, la virgule n'apparaisse pas.
>
>De manière générale (mais c'est subjectif) je trouve plus simple de
>rajouter une virgule avant toutes les occurrences sauf la première que
>de rajouter une virgule après toutes les occurrence sauf la dernière
>mais je ne pense pas que ce soit la source de votre problème.
>
>La complexité de votre expression XPath me fait penser que vous ne nous
>avez pas tout dit dans l'énoncer de votre problème :).
>
>On voit des variables $nb et $pagecourante qui suggèrent un mécanisme de
>pagination et un test ./@statut='obligatoire' qui suggère que vous ne
>voulez traiter que les éléments <q/> dont l'attribut @statut a la valeur
>'obligatoire'?
>
>Ces deux facteurs ont un impact sur la détection de la dernière (ou de
>la première) occurrence et pour simplifier la chose, vous pourriez les
>remonter dans le xsl:for-each et écrire quelque chose du type (si j'ai
>bien compris votre problème) :
>
><xsl:template name="champs_javascript">
><xsl:for-each select="/root/form/rub/q[position() <= ($nb *
>$pagecourante) and position() > ($nb * ($pagecourante -
>1))and(./@statut='obligatoire')]">
><xsl:if test="position() > 1">, </xsl:if>
><xsl:text>"</xsl:text>
><xsl:value-of select="@id"/>"
><xsl:text>"</xsl:text>
></xsl:for-each>
></xsl:template>
>
>Cordialement,
>
>Eric van der Vlist
>--
>Carnet web :
> http://eric.van-der-vlist.com/blog?t=category&a=Fran%C3%A7ais
>Upcoming XML schema languages tutorial:
> - Portland -half day- (27/07/2004) http://masl.to/?E6ED13728
>------------------------------------------------------------------------
>Eric van der Vlist http://xmlfr.org http://dyomedea.com
>(ISO) RELAX NG ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
>(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
>------------------------------------------------------------------------
>
>
>--
>Devenez redacteur <XML>fr et contribuez au developpement du
>xml francophone (http://xmlfr.org/infos/redacteurs/) !
>
>Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
>
>Cette liste est a votre disposition pour discuter en francais de
>tout sujet technique lie a XML.
>
>Pour resilier votre abonnement, envoyez un message contenant
>la commande "unsubscribe" a xml-tech-request@xmlfr.org
>(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
>
>
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 30/07/2004 - 13:32 UTC
webmaster@xmlfr.org
|