Project

General

Profile

« Previous | Next » 

Revision ee7f5ddf

Added by Pierre Cros over 12 years ago

help: complete version of the documentation

View differences:

help/fr/form_conditionnel.page
<title>4. Créer un formulaire conditionnel</title>
<info>
<link type="guide" xref="index#formulaires" group="#first"/>
<link type="guide" xref="formulaires" group="#first" />
<link type="guide" xref="index#formulaires" />
<desc>N'afficher à l'usager que les pages correspondant à sa situation</desc>
</info>
<p>Les formulaire conditionnels permettent de rendre un formulaire dynamique, d'afficher ou non certaines pages en fonction des réponses de l'utilisateur à certaines questions. L'affichage des pages peut en effet être soumis à des « conditions ». Ces conditions sont remplies, ou non, en fonctions des réponses de l'utilisateur.</p>
......
<section id="form_variable">
<title>Nom de variable</title>
<p>Les noms de variable sont des identifiants que l'on peut donner à chaque champ. Donner un nom de variable est généralement inutile, mais cela devient intéressant lorsque le champ est une question qui va être utilisée pour conditionner l'affichage d'une page. On utilisera en effet ce nom de variable pour écrire la condition décidant de l'affichage d'une page.</p>
<p>Les noms de variables sont des identifiants que l'on peut donner à chaque champ. Donner un nom de variable est utile lorsque le champ est une question qui va être utilisée pour conditionner l'affichage d'une page. On utilisera en effet ce nom de variable pour écrire la condition décidant de l'affichage de la page en question.</p>
<p>Les noms de variables sont soumis à des règles, ils doivent contenir des chiffres ou des lettres, sans accentuation ni espaces (on remplace généralement ces derniers par le caractère underscore).</p>
<p>Les noms de variables sont soumis à des règles, ils doivent contenir des chiffres ou des lettres, sans caractères spéciaux (on remplace généralement les espaces par le caractère underscore).</p>
</section>
<section>
<title>Pages conditionnelles</title>
<p>Les champs de type « Nouvelle page » sont les seuls à posséder une option particulière « Condition » accessible lorsqu'on les édite. C'est dans ce champ que l'on va écrire la règle décidant si cette page doit être affichée ou non. Il existe deux façons d'écrire cette condition :</p>
<p>Les champs de type « Nouvelle page » sont les seuls à posséder une option particulière - accessible lorsqu'on les édite - « Condition » . C'est dans ce champ que l'on va écrire la règle décidant si cette page doit être affichée ou non.</p>
<section>
<title>Avec un nom de variable</title>
<p>Nous avons vu que l'on pouvait donner un nom de variable à un champ :</p>
<figure>
<media type="image" src="figures/nom_var.png" />
</figure>
<p>Le champs en question est une liste qui contient plusieurs réponses, disons deux réponses pour l'exercice : </p>
<list>
<item><p>1ère catégorie</p></item>
<item><p>2ème catégorie</p></item>
</list>
<p>Nous avons vu que l'on pouvait donner un nom de variable à un champ, cette variable peut être utilisée pour écrire la condition d'affichage de la page. </p>
<p>La condition s'écrira alors selon la forme suivante :</p>
......
<media type="image" src="figures/condition_type_chasse.png" />
</figure>
<p>On voit que l'on ajoute avant le nom de la variable le préfixe <em>var_</em>. Puis, on utilise l'opérateur <em>==</em> qui signifie « égal à », enfin on ajoute entre guillemets la valeur de la réponse attendue pour que la condition soit respectée. Si l'utilisateur sélectionne « 1ère catégorie » dans la liste déroulante, la page « Chien de 1ère catégorie » lui sera affichée, si il choisit autre chose, il ne la verra pas et passera directement à la page suivante (ou aura terminé le questionnaire s'il n'y a pas de page suivante).</p>
<p>Il est nécessaire d'ajouter, avant le nom de la variable, le préfixe <em>var_</em>. Puis, d'utiliser l'opérateur <em>==</em> qui signifie « égal à ». Enfin il faut faire figurer, entre guillemets, la valeur exacte (respect de la casse et de l'accentuation) de la réponse attendue pour que la condition soit respectée. Si la réponse de l'utilisateur correspond à la conditino, la page est affichée, dans le cas inverse elle ne l'est pas.</p>
<note style="warning">
<title>Respectez la casse !</title>
<p>La casse est importante (majuscule / minuscule). Si vous ne la respectez pas dans l'écriture de la condition, cela ne fonctionnera pas.</p>
</note>
</section>
<section>
<title>Avec l'identifiant de l'URL</title>
<p>Plutôt que d'utiliser un nom de variable, on peut se contenter de son identifiant, récupérable dans l'URL du champ lorsqu'on l'édite. Par exemple l'URL http://wcs.exemple.org/admin/forms/28/fields/15/ nous permet de savoir que le champs édité a le numéro 15. Il suffit de faire précéder ce chiffre d'un f (pour « field ») afin d'obtenir l'identifiant.</p>
<p>La condition peut alors s'écrire sous la forme :</p>
<figure>
<media type="image" src="figures/condition_id_type_chasse.png" />
</figure>
<p>f15 remplace ici le nom de variable utilisé dans l'exemple précédent, tout le reste est identique. Cette forme de notation est utile pour les experts qui ne souhaitent pas s'embarrasser avec des noms de variable mais elle est moins lisible.</p>
<note style="warning">
<title>Respectez la case !</title>
<p>La casse est importante (majuscule / minuscule). Si vous ne la respectez pas dans l'écriture de la condition, cela ne fonctionnera pas.</p>
</note>
</section>
<note style="advanced">
<title>Champs servant de base à une condition</title>
<p>Une condition porte uniquement sur la réponse apportée à des champs de type « liste » ou « case à cocher ».</p>
</note>
</section>
</page>

Also available in: Unified diff