<page xmlns="http://projectmallard.org/1.0/"
      type="topic"
      id="form_conditionnel">

<info>
	<title  type="sort">4</title>
	<link type="guide" xref="index#formulaires" />
	<desc>N'afficher à l'usager que les pages correspondant à sa situation</desc>
</info>

<title>Créer un formulaire conditionnel</title>

        <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 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 caractères spéciaux (on remplace généralement les espaces par le caractère underscore).</p>
</section>            

 <section id="pages_conditionnelles">
            <title>Pages conditionnelles</title>
            
            <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>
            
                <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>
                
                <figure>
                    <media type="image" src="figures/condition_type_chasse.png" />
                </figure>
                
                <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>
        
           <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>
