Génération du site web de l'ULB - format xml
sommairesommaireindexindexpage précédentepage précédentepage suivantepage suivanteimprimerimprimerenvoyerenvoyermarquermarquer

<record>: enregistrement des données récoltées par un formulaire dans une base de données

Un sous-élément <record> placé tout au début de l'élément <formulaire> permettra d'enregistrer les données récoltées par le formulaire dans une base de données.

Vous pourrez par la suite consulter les données enregistrées et les obtenir sous différents formats, notament un format CSV compatible avec le tableur Excel.

Après l'enregistrement, deux possibilités:

  • si vous utilisez une balise <redirect>, celle-ci va rediriger automatiquement l'appel vers une page html destinée à afficher un texte de remerciement et/ou de confirmation. Cette page sera affiché par le navigateur, en lieu et place de la page qui contient le formulaire;

  • si vous n'utilisez pas cette balise, une action ok (si l'enregistrement s'est bien passé) ou nok (si une erreur s'est produite) sera exécutée, ce qui permettra de poursuivre le traitement du formulaire avec d'autres actions.


Exemple de <record>

Votre email:

Code de cet exemple
<formulaire>
   <record id="testform"/>
   <input>   
      <nom>email</nom>
      <libellé>votre email</libellé>
      <valeur>Séraphin.Lampion@ulb.ac.be</valeur>
   </input>
   <bouton>
      <libellé>Enregistrer</libellé>
   </bouton>
</formulaire>

Contenu de l'élément <record>

L'élément <record> peut contenir les sous-éléments suivants (ils ne sont pas obligatoires):

<redirect>

après l'envoi, redirige le navigateur vers une page de remerciement et/ou de confirmation

<paramètre>
<parameter>

crée un paramètre supplémentaire à envoyer à l'application distante. Ce paramètre viendra s'ajouter aux paramètres récoltés par le formulaire

<actions exécuter="...">

permet de déclencher des actions au moment de l'affichage de la page, avant l'enregistrement des données du formulaire ou après cet enregistrement


L'élément <record> doit/peut posséder les attributs suivants:

id

mentionne l'indentificateur de la base de données. Cet attribut est obligatoire

ancre

place une ancre sur l'action, afin de la distinguer des autres actions dans le cas où plusieurs actions coexistent dans le même formulaire


La base de données

Si vous désirez avoir votre propre base de données, vous devez en faire la demande auprès de la Cellule web. Cette dernière enregistrera votre demande et vous donnera en retour l'identificateur à utiliser dans l'élément <record>. Elle vous donnera également accès à l'application qui vous permettera de gérer votre base de données (initialiser, récupérer les données, effacer les données...).

Cette application de gestion se trouve à l'adresse suivante: http://www.ulb.ac.be/intranet/webforms

Lors de cet enregistrement, la base de données n'est pas réellement créée car son format va dépendre du contenu de votre formulaire. Elle le sera automatiquement après le premier envoi réalisé avec votre formulaire (ce premier envoi contiendra la liste des paramètres récoltés par votre formulaire; liste qui sera utilisée pour construire la structure de votre base de données).


Marche à suivre
1)

Demander à la cellule web d'enregistrer la base de données, obtenir son identificateur

2)

Créer le formulaire avec un élément <record id="xxxx">xxxx est égal à cet identificateur

3)

Remplir le formulaire en prenant soin de remplir tous les champs, y compris les champs qui ne sont pas obligatoires

4)

Envoyer le formulaire afin de créer la base de données. Ce premier envoi ne sera pas enregistré, mais permettra de créer la structure de votre base de données

5)

Votre base de données et votre formulaire sont prêts à être testés.


Prenez tout le temps nécessaire afin de tester votre formulaire sous toutes ses coutures avant que celui-ci ne soit mis en ligne. Si vous découvrez un problème après sa mise en service, vous prenez le risque de perdre toutes les données qui ont déjà été enregistrées.


Si vous devez modifier votre formulaire
1)

Utiliser l'application de gestion pour Réinitialiser la base de données (vider son contenu et effacer sa structure)

2)

Modifier votre formulaire

3)

Remplir à nouveau le formulaire en prenant soin de remplir tous les champs, y compris les champs qui ne sont pas obligatoires

4)

Envoyer à nouveau le formulaire afin de recréer la base de données

5)

Tester à nouveau votre formulaire


Mettre votre formulaire en service
1)

Utiliser l'application de gestion pour Vider la base de données (vider son contenu sans effacer sa structure) afin de supprimer tous vos tests antérieurs

2)

Le formulaire et la base de données sont prêts à fonctionner


Utiliser une clé pour les données

Si vous n'utilisez pas de clé, chaque envoi du formulaire enregistrera des données dans la base de données. Peu importe si c'est la même personne qui est à l'origine de ces envois multiples (il n'y a techniquement pas moyen de se rendre compte qu'il s'agit de la même personne).

Pour y remédier, il faut associer une clé aux données. Cette clé devra toujours être différente pour des personnes différentes et identique pour la même personne.

Dans le cas de l'ULB, la meilleure clé possible est d'utiliser le matricule de la personne. Ce matricule est connu si votre page est protégée par l'Intranet de l'ULB.

Pour associer une clé, il suffit de placer un attribut clé="..." (ou key="...") sur l'élément <record>.

La valeur de cet attribut représentera la clé en question. Bien entendu, comme cette valeur doit se distinguer d'une personne à l'autre, celle-ci contiendra des champs paramètrables.

Ainsi, si on veut utiliser le matricule comme clé, on utilisera:


<record id="formluc" clé="{intranet:matri}">
   ...
</record>
             
			

Comportement par défaut

Si une clé est présente, et si des données qui possèdent la même clé sont déjà présentes, elles seront remplacées par les nouvelles valeurs reçues. Bien entendu, si des données possèdant cette clé n'existent pas encore, les nouvelles valeurs reçues seront directement enregistrées.


Exemple
<formulaire style="colorBar1" bords="arrondis" options="intranet">
   <record id="sitemanager2" clé="{intranet:matri}"/>
   <input>
      <nom>lastname</nom>
      <libellé>nom</libellé>
      <valeur>{intranet:nom}</valeur>
      <obligatoire/>
   </input>

   <input>
      <nom>firstname</nom>
      <libellé>prénom</libellé>
      <valeur>{intranet:prénom}</valeur>
      <obligatoire/>
   </input>
						
   <input type="radio">
      <nom>inscription</nom>
      <libellé>je m'inscrit à la séance</libellé>
      <obligatoire/>
      <option valeur="solbosch">du 31/10 à 14h au Solbosch</option>
      <option valeur="plaine">du 12/11 à 14h à la Plaine</option>
      <option valeur="erasme">du 24/11 à 10h à Erasme</option>
   </input>
						
   <bouton>
      <libellé>envoyer</libellé>
   </bouton>						
</formulaire>
					
<bloc options="no" style="voile" bords="arrondis">
   <p><a cible="intranet:login">Connectez-vous</a> à l'Intranet pour voir cet exemple fonctionner</p>
</bloc>						
					

Après l'enregistrement, rediriger vers une page de remerciement et/ou de confirmation

Après l'enregistrement, vous pouvez faire apparaître une page web de remerciement et/ou de confirmation. Pour cela, il faut utiliser un élément <redirect> possèdant un attribut de lien hypertexte (le plus généralement docref ou href). Cet attribut donne l'adresse (URL) de cette page.

Le fonctionnement est alors similaire au traitement de la réponse dans un élément <action>. En particulier, prenez en compte le fait que cette page vient remplacer la page courante dans le navigateur. De ce fait, les actions que vous comptiez éventuellement exécuter par la suite ne le seront pas (la page ayant disparue, ces actions ne seront plus définies).

Pour contourner ce fait, vous pouvez utiliser un attribut nouvel-onglet ou cible (la page de remerciement sera affichée dans un nouvel onglet ou dans une balise html de la page, ce qui laissera la page courante active dans le navigateur. Pour plus d'info, voir <action>). Vous pouvez également ne pas utiliser cet élément <redirect>, ce qui a pour effet que l'envoi de l'email exécute une action ok ou nok comme expliqué ci-dessous.


Dans cet exemple, l'appel est redirigé après l'envoi vers une page de remerciement.

exemple
<formulaire style="voile" bords="arrondis">
   <record id="sitemanager3">
      <redirect docref="info:remerciements"/>
   </record>
   <input>
      <nom>nom</nom>
      <libellé>nom et prénom</libellé>
   </input>
   <input>
      <nom>e-mail</nom>
      <libellé>adresse e-mail</libellé>
   </input>
   <bouton>
      <nom>ok</nom>
      <libellé>envoyer</libellé>
   </bouton>	
</formulaire>

Nom et prénom:

Adresse e-mail:


Après l'enregistrement, exécuter une action ok/nok

Si vous n'utilisez pas d'élément <redirect>, l'envoi du message va exécuter(*) une action ok (si l'enregistrement s'est bien passé) ou nok (si une erreur est survenue lors de l'envoi).

Vous pouvez, de ce fait exécuter par la suite vos propres actions afin de traiter l'une ou l'autre de ces réponses (l'action si permet de tester si ok ou nok a été exécutée).

(*) Dans la réalité, l'enregistrement se fait par une application distante qui retourne, comme dans un élément <interaction>, une chaîne de caractères contenant une liste d'actions qui seront exécutées par le navigateur. Dans ce cas-ci, cette liste se limite aux actions ok ou nok.


Dans cet exemple, il n'y a pas de page de remerciement. Des actions, exécutées après l'enregistrement, sont utilisées pour tester si cet enregistrement à réussi ou non (si:suivant:error). S'il a réussi, elles font disparaître le formulaire (masquer:formulaire) et apparaître un bloc (montrer:dataok) contenant une confirmation de cet enregistrement. En cas d'erreur, une alerte est affichée dans une boîte de dialogue.

Une autre action est exécutée lors de l'affichage de la page afin de masquer initialement le bloc en question (masquer:dataok).

Des actions seront également exécutées avant l'envoi, afin de demander une confirmation à l'utilisateur.

Nom et prénom:

Adresse e-mail:

Vos coordonnées ont bien été enregistrées.

ULB - entreprise écodynamique