🧩 Conditions et règles (éditeur graphique)

L'onglet « Conditions et règles » dans les paramètres du formulaire est l'éditeur visuel moderne dédié à la logique des champs : afficher/masquer des champs, rendre des champs obligatoires de manière dynamique, calculer des valeurs, filtrer des options. C'est la méthode recommandée pour la plupart des cas d'utilisation.

> ⚠️ Statut bêta : la fonctionnalité est disponible, mais nous continuons à tester les cas limites. Si une configuration spécifique ne réagit pas comme prévu : envoyez un bref e-mail à hello@propform.io en indiquant l'ID du formulaire — nous y jetterons un œil.


Contenu


Actions disponibles

Pour chaque règle, vous sélectionnez une action qui sera exécutée si la condition est remplie : | Action | Effet | | Masquer | Le champ n'est plus affiché (la valeur reste vide lors de la soumission) | | Afficher | Les champs masqués par défaut sont rendus visibles | | Rendre obligatoire | La validation impose la saisie avant la soumission | | Verrouiller | Le champ reste visible mais n'est pas modifiable (par exemple après la première soumission) | | Masquer des options | En sélection simple/multiple : supprimer certaines valeurs de la sélection | | Définir une valeur | Le champ reçoit une valeur fixe | | Calculer une valeur | Le champ reçoit le résultat d'une formule (voir ci-dessous) | | Modifier le libellé | Remplacer dynamiquement le libellé du champ (par ex. « Prix d'achat » → « Prix de location ») |

---

Opérateurs de condition

Les conditions vérifient la valeur d'un autre champ. Opérateurs disponibles :

  • ist gleich / ist nicht gleich
  • ist leer / ist nicht leer
  • enthält / enthält nicht (pour les champs à sélection multiple et les champs de texte)
  • ist größer als / ist kleiner als (pour les nombres)
  • ist größer-gleich / ist kleiner-gleich

Plusieurs conditions par règle sont liées par ET (toutes doivent être remplies) ou OU (une seule suffit) — à choisir pour chaque règle.

---

Calculs entre champs (Calculer la valeur)

L'action « Calculer la valeur » vous permet de combiner arithmétiquement les valeurs de plusieurs champs — par exemple, calculer automatiquement une commission interne à partir du prix d'achat et du pourcentage de commission.

La formule utilise une syntaxe pipe avec des identifiants de champ :

{{multiply:field:125802|field:125803|/100}}

→ multiplie les valeurs des champs 125802 et 125803, puis divise le résultat par 100.

Étape par étape

Exemple de configuration : trois champs dans le formulaire — Kaufpreis (champ numérique), Prozent Innenprovision (champ numérique), Summe Innenprovision (champ numérique).

1. Trouver les identifiants de champ

L'ID de champ correspond à l'ID DOM de l'élément <input> dans le formulaire. Voici comment le trouver :

  • Ouvrez le formulaire dans le navigateur
  • Cliquez avec le bouton droit sur le champ concerné → Inspecter
  • Dans le panneau DevTools, développez l'élément <div> environnant — l'ID du champ se trouve dans la propriété ID (par exemple, 125802)
  • Notez les ID des trois champs

2. Créer une règle

Onglet « Conditions et règles » → Nouvelle règle :

  • Condition : Kaufpreis n'est pas vide ET Prozent Innenprovision n'est pas vide
  • Action : Calculer la valeur → Champ Summe Innenprovision
  • Formule dans le champ Valeur :
{{multiply:field:<ID-Kaufpreis>|field:<ID-Provisions-Prozent>|/100}}

3. Test en direct

Ouvrir le formulaire → Saisir le prix d'achat → Saisir le pourcentage de commission → Le total est calculé automatiquement.

Opérateurs de syntaxe pipe

Les opérateurs sont enchaînés à l'aide du pipe | :

Modèle Signification Exemple
multiply:... Multiplication `multiply:field:A
add:... Addition `add:field:A
subtract:... Soustraction `subtract:field:A
divide:... Division `divide:field:A
/<zahl> Division par une valeur fixe `multiply:field:A
*<zahl> Multiplication par une valeur fixe `add:field:A

field: vs. field_value:

Syntaxe Quand l'utiliser ?
field:<ID> Pour les champs numériques : renvoie la valeur saisie. Pour les sélection simple : renvoie le nom clair (par ex. « Appartement »)
field_value:<ID> Pour les sélection simple : renvoie la clé technique (par ex. ind_3673). Important pour les comparaisons dans les conditions IF()

Pour les champs purement numériques, field: et field_value: renvoient la même chose — les deux fonctionnent.

Cas d'utilisation

  • Calculateur de commission interne : Prix d'achat × pourcentage ÷ 100
  • Calcul du rendement : (Revenus locatifs − Coûts) ÷ Montant de l'investissement × 100
  • Conversion brut/net : Net × 1,19
  • Prix au m² : Prix ÷ Surface habitable
  • Calcul de la valeur résiduelle (mode promoteur immobilier, combinable à plusieurs niveaux)

> 💡 Remarque UX : La configuration actuelle via les identifiants DevTools et la syntaxe Pipe n'est pas très intuitive. Un éditeur de formules visuel est prévu dans la feuille de route.


Conditions unidirectionnelles vs bidirectionnelles

La plupart des actions sont appliquées de manière sticky (unidirectionnelle) — dès que la condition est remplie une fois, l'effet persiste, même si la condition redevient fausse. Seules quelques actions reviennent automatiquement à leur état d'origine (bidirectionnelle).

Action Comportement
Masquer / Afficher Unidirectionnel (sticky) — l'état d'affichage défini reste inchangé ; pour l'inverse, tu as besoin d'une deuxième règle
Verrouiller / Déverrouiller Unidirectionnel
En lecture seule / Modifiable Unidirectionnel
Champ obligatoire / Facultatif One-Way (STICKY) — lorsque la condition redevient fausse, l'état « obligatoire » est conservé
Masquer les options Two-Way — les options sont automatiquement réaffichées lorsque la condition devient fausse
Réafficher les options One-Way (sticky show)
Définir la valeur / calculer (champs standard) One-Way — la valeur définie est conservée
Définir la valeur pour les champs image/vidéo Two-Waysrc est automatiquement réinitialisé à sa valeur d'origine
Modifier le libellé Two-Way — le libellé d'origine réapparaît automatiquement lorsque la condition devient fausse

> 💡 Pour les actions de type One-Way : si tu souhaites les annuler, tu as besoin d'une deuxième règle avec la condition inverse, qui rétablit l'état d'origine. Exemple : une règle affiche le champ, une deuxième règle le masque à nouveau.


Priorités en cas de règles multiples

Lorsque plusieurs règles s'appliquent au même champ (par exemple, la règle 1 définit la valeur sur X, la règle 2 définit la valeur sur Y), c'est la priorité qui décide :

  • Numéro plus élevé = priorité plus élevée
  • En cas d'égalité : la règle la plus récente dans l'éditeur l'emporte

> 💡 Bonnes pratiques : attribuez délibérément des priorités par incréments de 10 (10, 20, 30, …) afin de pouvoir en insérer d'autres par la suite.


Configurations types

« Le type de commercialisation change → adapter le libellé »

  • Condition : Vermarktungsart = Miete
  • Action : champ Kaufpreis → modifier le libellé en Kaltmiete
  • Action 2 : Champ Kaufpreis → Ajouter le suffixe (€/Monat)

« Si sans commission → Masquer les champs de commission »

  • Condition : Provisionsfrei = Ja
  • Action : Champs Provision Außen, Provisions-Prozent, MwSt. → Masquer

« Le nom de l'acheteur doit être renseigné dans les contrats de vente »

  • Condition : Vertragsart = Kaufvertrag
  • Action : Champs Käufer-Vorname + Käufer-Nachname → Champs obligatoires

« Calculer automatiquement la commission interne »

  • Condition : Kaufpreis n'est pas vide ET Provisions-Prozent n'est pas vide
  • Action : Champ Summe Innenprovision → Calculer la valeur → {{multiply:field:KAUFPREIS_ID|field:PROZENT_ID|/100}}

« Filtrer les options à sélection unique en fonction d'un autre champ »

  • Condition : Bundesland = Bayern
  • Action : Champ Region → Masquer les options → toutes sauf les régions bavaroises

Connexes