Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

From: Benoit Bouyé (bouye@medias-cite.org)
Date: 09/07/2004 - 10:28


En fait, voilà l'architecture globale de mon appli (pour le moment :)))
j'ai un fichier XML qui contient des questions et le type de réponse attendu (c a d le type d'objet form a créer + son name).
ma XSL me permet de créer le formulaire en XHTML pour qu'un utilisateur desirant repondre au questionnaire puisse le faire. Mon php utilise sablotron pour mélanger le tout.

Maintenant mon problème c'est enregistrer les values tapées dans le formulaire par l'utilisateur répondant au questionnaire et comment gérer le multipage.

Voila 2 bouts de code qui illustrent tout ça :)

mon xml :

<formulaire>
 <enquete ref="1">
  <questionnaire ref="2" mode="section" affichage="1000">
   <section>
    <titre>Identité</titre>
    <question>
    <reponse statut="obligatoire"/>
     <libelle champ="age">
      Quel est votre âge ?
     </libelle>
     <type nom="numeric">
     <inf>18</inf>
     <sup>70</sup>
     </type>
    </question>
    <question>
    <reponse statut="facultatif"/>
     <libelle champ="nom">
      Quel est votre nom ?
     </libelle>
     <type nom="text"/>
    </question>
   </section>
etc ...

Mon XSL

 <xsl:choose>
                                 <xsl:when test="type[@nom='numeric']">
                                            <input type="text"><xsl:attribute name="name"><xsl:value-of select="$champ_courant"/></xsl:attribute><xsl:attribute name="id"><xsl:value-of select="$champ_courant"/></xsl:attribute>
                                        <xsl:choose>
                                                <xsl:when test="reponse[@statut='obligatoire']">
                                                        <xsl:attribute name="onblur">verifnombre(this,<xsl:value-of select="$limite_inf"/>,<xsl:value-of select="$limite_sup"/>);champvide(this);</xsl:attribute>
                                                </xsl:when>
                                                <xsl:when test="reponse[@statut='facultatif']">
                                                        <xsl:attribute name="onblur">verifnombre(this,<xsl:value-of select="$limite_inf"/>,<xsl:value-of select="$limite_sup"/>);</xsl:attribute>
                                                </xsl:when>
                                        </xsl:choose>
                                        </input>
                                 </xsl:when>
                                 <xsl:when test="type[@nom='text']">
                                        <input type="text"><xsl:attribute name="name"><xsl:value-of select="$champ_courant"/></xsl:attribute><xsl:attribute name="id"><xsl:value-of select="$champ_courant"/></xsl:attribute>
                                        <xsl:choose>
                                                <xsl:when test="reponse[@statut='obligatoire']">
                                                        <xsl:attribute name="onblur">champvide(this);</xsl:attribute>
                                                </xsl:when>
                                        </xsl:choose>
                                        </input>

etc ...

J'espère que ça éclaire ce que je veux faire :) Je suis en pleine phase de test et de questionnement donc je peux tout remettre par terrer et recommencer s'il le faut, si la solution que je mets en place n'est pas la bonne :)

benoit

---------- Original Message ----------------------------------
From: Stephane Toussaint <proner@wanadoo.fr>
Reply-To: xml-tech@xmlfr.org
Date: Fri, 09 Jul 2004 11:18:53 +0200

>
>Benoit Bouyé a écrit le 09/07/2004 10:48 :
>
>> Merci de ta réponse,
>>
>> pour les XFORMS, j'ai effectivement commencé à bosser dessus mais le
>> problème c'est qu'il n'existe que peu d'appli les faisant tourner.
>
>Si tu bosses en PHP, c'est carrément une librairie XFORM qu'il faut que
>tu fasses, il n'en existe pas encore à priori (enfin pas touvé avec mon
>ami google)
>
>> Pour le PHP, solution que je retiens pour le moment :) comment procèdes tu ?
>> Actuellement j'ai 3 pages : une page XML, une XSL et une page PHP. Si je
>> mets en place ma pagination à l'aide des sessions comme tu me l'indiques,
>> dois je créer une nouvelle page PHP pour traiter les datas contenues dans
>> mes champs de formulaire ?
>
>Voyons voir si j'ai bien compris.
>1 page XML qui au terme de "l'application" stockera toutes les données
>saisies dans les différentes pages.
>
>1 page XSL standart pour la mise en page des infos XML
>
>1 page PHP pour saisir les infos (genre je veux 3 champs texts, etc...)
>
>Déjà j'espère que j'ai bien compris là.
>
>Je n'ai pas vraiment compris pourquoi tu avais besoins de plusieurs
>pages PHP, mais la question est surtout connais tu par avances le nombre
>de pages nécessaires ?
>
>Moi ce que je fais généralement que j'ai un formulaire qui tiens sur
>plusieurs pages (Donc plusieurs formulaires).
>
>1 page PHP dont le squelette est le suivant
>
>function step1() {?>
><form name="step1" method="post" action="<?php echo "$PHP_SELF"?>">
> <input type="hidden" name="action" value="1" />
></form>
><?php
>}
>
>function validStep1() {
>}
>
>function step2() {?>
><form name="step2" method="post" action="<?php echo "$PHP_SELF"?>">
> <input type="hidden" name="action" value="2" />
></form>
><?php
>}
>
>function validStep2() {
>}
>
>switch ($_POST["action"]) {
> case 1 : validStep1(); step2();
> break;
> case 2 : validStep2(); session_unset();
> default : step1();
>}?>
>
>Tous mes formulaires sont dans une seule page PHP (plus simple à gérer)
>et l'application avance pas à pas (step by step).
>Arrivé aux fonctions validStep, c'est là que la vérification et la
>sauvegarde des données est effectuée.
>
>Pour toi, soit tu construit ton fichier XML à la volé, soit tu
>sauvegardes tes données dans un objet (que tu aura créé) qui colle à ton
>application et tu le mets en session.
>
>Dans les 2 cas arrivés à l'étape suivante tu récupère les données soit
>directemnt dans ton objet en session soit dans ton fichier XML.
>
>Mais maintenant, je n'ai peut être pas très bien compris ce que tu
>voulais faire ou dû moins qu'elles étaient les différentes étapes à suivre.
>
>Steph
>
>
>--
>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

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement