Question conditionnelle

Il arrive que dans un formulaire on souhaite afficher certaines questions en fonction de la réponse apportée à une des questions précédentes.
Cʼest ce qui se passe notamment lorsque lʼutilisateur répond « autre » à une liste déroulante ou à des cases à cocher, et quʼon lui propose alors un champ texte pour préciser (ce champ texte nʼapparaissant que dans ce cas).
La question conditionnelle fait donc suite à une question de type Liste (Sélectionner), Checkbox (cases à cocher) ou Radio (Boutons radio).
Illustrations

image affichage_conditionnel_dans_le_contexte.png
Lorsque vous insérez un « Affichage conditionnel » dans votre formulaire, Bazar y crée deux champs.
  • Le premier, intitulé « Condition »,
  • Le second intitulé « Fin de condition ».
Ce que vous devez faire :
  • placer, entre le champ « Condition » et le champ « Fin de condition », le ou les champs que vous souhaitez faire apparaître de manière conditionnelle ;
  • préciser dans le champ « Condition », la condition d'apparition de ce ou ces champs ;
  • laisser le champ « Fin de condition » en lʼétat.

Remarque 1 — Un couple de champs « Affichage conditionnel » (« Condition » et « Fin de condition ») définit une seule condition (même si elle peut complexe). Si vous souhaitez obtenir différents comportements en fonction de différentes conditions, il vous faudra insérer et définir autant dʼaffichages conditionnels que de conditions à remplir.
Remarque 2 — Il peut arriver, dans certains contextes (formulaire long ou comportant de nombreux champs de type « Custom HTML »), que le champ « Fin de condition » apparaisse sous le nom de « Custom HTML ». Si cʼest le cas, vérifiez juste que son contenu est bien le suivant : </div><!-- Fin de condition--> dans « Contenu lors de la saisie ».
Remarque 3 — Il peut également arriver que, lors de l'affichage sous forme de liste des fiches dʼun formulaire comportant des questions conditionnelles, toutes les fiches semblent imbriquées les unes dans les autres et que seule la première fiche apparaisse (les autres semblant être à lʼintérieur). Si cʼest le cas, ajoutez, tout à la fin de votre formulaire, un champ de type « Custom HTML » dans lequel vous laisserez le paramètre « Contenu lors de la saisie » vide et saisirez </div></div> dans le paramètre « Contenu lors de lʼaffichage ».

Champ de type « condition »

Ce champ n'est pas un vrai champ.
Il s'agit, dans les faits, d'un outil qui permet d'exprimer la condition qui sera nécessaire pour montrer tout ce qui se trouve entre « Condition » et « Fin de condition ».

Paramètres du type de champs « condition »

Pour que cela fonctionne (et ait du sens), la condition doit faire référence à une ou plusieurs valeurs dʼun ou plusieurs champs de type énumération : Liste (Sélectionner), Checkbox (cases à cocher) ou Radio (Boutons radio).
Condition
Ce paramètre définit la condition à respecter pour afficher les champs qui suivent (jusquʼà « Fin de condition »).
Les règles de syntaxe de ce paramètre sont expliquées dans lʼencadré qui se trouve au dessus.
Voici quelques exemples pour illustrer cette syntaxe.
Rappel sur lʼidentifiant unique On suppose quʼon dispose de :
  • un champ de type « Sélectionner » (ou radio ou checkbox) dont l'identifiant unique est bf_trucmuche
  • une liste listeConfiture sur laquelle s'appuie ce champ (les valeurs étant : {1, figues}, {2, gingembre-tomates vertes}, … ,{5, autre}).
Pour afficher si… valeur du paramètre
on a répondu « autre » bf_Confiture==5
on nʼa pas répondu « figues » bf_Confiture!=1
on nʼa répondu ni « figues », ni « autre » bf_Confiture!=1 and bf_Confiture!=5
on nʼa pas répondu du tout bf_Confiture is empty
on a répondu « figues » ou « gingembre-tomates vertes » (pareil quʼen dessous) bf_Confiture==1 or bf_Confiture==2
on a répondu « figues » ou « gingembre-tomates vertes » (pareil quʼau dessus) bf_Confiture in [1,2]
dans le cas dʼune checkbox, on a répondu « figues » et « gingembre-tomates vertes » bf_Confiture==[1,2]
dans le cas dʼune checkbox, moins de trois cases ont été cochées bf_Confiture|length < 3
dans le cas dʼune checkbox, au moins deux cases ont été cochées mais pas la case « autre » bf_Confiture|length > 2 and bf_Confiture!=5