<record>: enregistrement des données récoltées par un formulaire dans une base de donnéesUn 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:
Contenu de l'élément <record>L'élément <record> peut contenir les sous-éléments suivants (ils ne sont pas obligatoires):
L'élément <record> doit/peut posséder les attributs suivants:
La base de donnéesSi 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).
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.
Utiliser une clé pour les donnéesSi 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éfautSi 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 confirmationAprè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> |
Après l'enregistrement, exécuter une action ok/nokSi 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. |