In dit voorbeeld maken we een deel-formulier waarbij een vaste groep keuzeopties dynamisch uitgebreid wordt op basis van logica-regels.
Deze functionaliteit kan op eenzelfde manier worden gebruikt voor de "radio"-, "keuzelijst"- en de "selectievakjes"-componenten.
Note
U kunt dit voorbeeld downloaden en :ref:`importeren <manual_export_import>` in Open Formulieren.
Download: :download:`dynamische-keuzelijsten.zip <_assets/dynamische-keuzelijsten.zip>`
Maak een formulier aan met de volgende gegevens:
- Naam: Dynamische keuzelijsten
Klik op het tabblad Variabelen. Klik hierbinnen op het tabblad Gebruikersvariabelen.
Voeg een variabele toe door op Variabele toevoegen link te klikken, en voer in:
Naam: Checkbox options
Datatype: Lijst (array)
Beginwaarde: vink "Gebruik ruwe JSON-invoer" aan en voer de JSON-array in:
[ [ "option1", "Option 1" ], [ "option2", "Option 2" ] ]
Klik op het tabblad Stappen en velden.
Klik aan de linkerkant op Stap toevoegen en selecteer Maak een nieuwe formulierdefinitie.
Onder de sectie (Herbruikbare) stapgegevens vul het volgende in:
- Naam: Variabele selectievakjesopties
Scroll naar de sectie Velden.
Sleep een Selectievakje component op het witte vlak, vul de volgende gegevens in en druk daarna op Opslaan:
- Label: Toon optie 3
Sleep een Selectievakjes component op het witte vlak, vul de volgende gegevens in en druk daarna op Opslaan:
Label: Variabele opties selectievakjes
Beschrijving: De beschikbare opties zijn afhankelijk van eerdere antwoorden.
Keuzeopties: Variabele
Opties-expressie:
{ "var": "checkboxOptions" }
Deze referentie komt overeen met de sleutel van de eerder toegevoegde gebruikersvariabele.
Klik op het tabblad Logica en voeg een eenvoudige regel toe.
Kies als triggervoorwaarde:
- Als "Variabele selectievakjesoptie: Toon optie 3 (toonOptie3)"
- "is gelijk aan"
- "de waarde"
- "Ja"
Voeg een actie toe:
dan "zet de waarde van een variabele/component"
"Checkbox options (checkboxOptions)"
voer de volgende JsonLogic in:
{ "merge": [ { "var": "checkboxOptions" }, [ [ "option3", "Option 3" ] ] ] }
Klik onderaan op Opslaan om het formulier volledig op te slaan.
U kunt nu het formulier bekijken.
Note
Deze expressie gebruik de JsonLogic merge operatie om de bestaande gebruikersvariabele uit te breiden met extra keuzeopties. U kunt vrij gebruikersvariabelen combineren zolang de variabele voor de selectievakjes component een lijst van opties (waarde en label) bevat.