Gebruikershulpmiddelen

Site-hulpmiddelen


dvgem:handleiding:voorbeeld:query-string_parameters

https://community.drupalvoorgemeenten.nl/t/voorbeeld-query-string-variabelen-gebruiken-in-formulieren/116

Voorbeeld: een formulier prefillen mbv query-string parameters

Stel je voor: burgers kunnen bij de gemeente zaken aanvragen zoals een Nee-Nee-sticker, een Stadsplattegrond of een Rol PMD-zakken (ik noem maar wat willekeurige dingen die wellicht helemaal niet reëel zijn). Ze kunnen op een knop “Aanvragen” klikken op de site, en krijgen dan een formulier om dit aan te vragen. Maar dit formulier is voor alle producten hetzelfde. Dus je wil niet voor elk product dit formulier gaan dupliceren. Het goede nieuws, dit kan je heel eenvoudig maken!

Stap 1: het formulier

  • we voegen eerst een formulier toe.
  • daarin voegen we een selectielijst toe, met de producten die aangevraagd kunnen worden. We vullen er nu twee in, maar dit kan je achteraf altijd uitbreiden uiteraard.
  • als standaardwaarde voor dit element stellen we in “[current-page:query:onderwerp]“
  • Vervolgens voeg je de andere velden toe die je nodig hebt, bijvoorbeeld naam, adres, email
  • We willen ook een e-mail bevestiging ontvangen als dit formulier ingezonden wordt. Sterker nog, de mail voor de Nee-Nee-sticker moet naar een andere afdeling dan de aanvraag voor de PMD-zakken. Ga dus naar Settings > Emails-handlers > Email toevoegen. Kies bij ontvanger voor het selectie-element dat we toegevoegd hebben. Je krijgt nu de mogelijkheid om voor elke optie een apart e-mail adres toe te wijzen:
  • Maak de rest van de email af zoals gewenst.
  • Als het formulier af is, maak je vervolgens een Pagina aan van het type Webform om het formulier te kunnen gebruiken. Mijn formulier ziet er nu zo uit:

Stap 2: de taakpagina's linken naar het formuler

  • Dat is een mooi formulier, maar als ik op de taak nee-nee-sticker aanvragen ben, wil ik dat ik op de “Aanvragen”-knop klik, en dat ik dan niet ook nogeens in het formulier het juiste item moet uitkiezen. Daarom gaan we dit nu koppelen. Kopieer eerst even de url van het formulier, inclusief de eerste schuine streep net na de domeinnaam. Dus als mijn url is: https://testing.dvgemdemo.hosted-temp.com/bestelformulier, dan kopieer ik nu /bestelformulier.
  • Ga nu naar de taakpagina voor het product. Voeg een call-to-action knop toe van het type Externe link.
  • Plak hier de url die we net gekopieerd hebben: /bestelformulier
  • Type na deze url een ?, gevolgd door het laatste stukje van het token dat we in stap 1 aangemaakt hebben: onderwerp.
  • Type daarna een = en de naam van het product dat geselecteerd moet worden. Het geheel ziet er dan zo uit: /bestelformulier?onderwerp=Nee-Nee sticker
  • Sla de taak op.

Als je nu de taak gaat testen, zie je keurig een call to action button. Als je daarop klikt kom je in het bestelformulier. Het juiste product is geselecteerd. Als iemand de aanvraag invult wordt het mailtje ook nog naar de juiste afdeling gestuurd.

Recap:

De sleutel van dit voorbeeld zit hem in het gebruik van de Query-parameters (variabelen in de url van een pagina die je zelf kan bepalen door na de url een ? toe te voegen en dan naam=waarde). Deze kan je via een token opvragen en gebruiken als standaardwaarde.

dvgem/handleiding/voorbeeld/query-string_parameters.txt · Laatst gewijzigd: 09/08/2022 11:43 door Koen Holman