Page 1 of 1

LISE koppelen aan Formulier (CGBetterForms)

Posted: Thu Oct 18, 2018 8:39 pm
by brentnl
Ik heb een module gemaakt met LISE (teamleden, specialisten). Nu heb ik een pagina met een bepaalde behandeling met bijvoorbeeld 2 specialisten (via LISE). Per specialist staat er een knop 'afspraak maken' en ik wil de gekozen specialist doorgeven aan het contactformulier.

Ik maak gebruik van CGBetterForms en dacht de dropdown zelf te kunnen realiseren met;

Code: Select all

  <div class="row">
     <label for="specialist">Specialist:</label>
     <select class="form-control">
     {LISETeam item=$specialist template_summary="dropdownform"}
    </select>
  </div>
Met als summary template;

Code: Select all

<options>Geen Voorkeur</options>
{foreach from=$items item=item}
<options>{$item->title}</options>
{/foreach}
Alleen dat werkt helaas niet. Daarnaast weet ik ook niet hoe ik vanuit het klikken op een link een bepaalde variabele kan doorgeven.

Zag in de help van CGBetterForms wel iets staan over {cgbf_set field=widget_color value='white'}, maar weet niet goed hoe ik dat koppel aan een link.

Re: LISE koppelen aan Formulier (CGBetterForms)

Posted: Fri Oct 19, 2018 6:48 am
by deactivated010521
CGBetterForms kan niet overweg met velden die je via een andere module (LISE) insluit.

Heb dit zelf nooit geprobeerd, maar heb eens in de documentatie gelezen dat je een "hidden" veld kunt aanmaken in CGBetterForms.

Code: Select all

<input type="hidden" name="specialist" value="">
Vervolgens roep je het dynamisch veld (de LISE actie) aan.

"hidden" veld moet dezelfde naam hebben als je select veld.... bijvoorbeeld "specialist"

Code: Select all

<select name="specialist" class="form-control">
{LISETeam item=$specialist template_summary="dropdownform"}
</select> 
Daarnaast weet ik ook niet hoe ik vanuit het klikken op een link een bepaalde variabele kan doorgeven.
Dit kan zonder klikken gewoon de name en value op select / option toepassen.

Code: Select all

<select name="specialist">
<option value="devries">Dr. de vries</option>
<option value="jansen">Dr. jansen</option>
</select>
Weet niet of je ook een moduleID/mact "x8b753" moet meegeven aan de veldnaam?

Kijk hiervoor even naar html source van de {CGBetterForms} aanroep.

Code: Select all

<input type="hidden" name="mact" value="CGBetterForms,x8b753,form,1" />
...... 
<select name="x8b753specialist">
...
</select>


Re: LISE koppelen aan Formulier (CGBetterForms)

Posted: Fri Oct 19, 2018 7:30 am
by brentnl
arnoud wrote:
...
Daarnaast weet ik ook niet hoe ik vanuit het klikken op een link een bepaalde variabele kan doorgeven.
Dit kan zonder klikken gewoon de name en value op select / option toepassen.

Code: Select all

<select name="specialist">
<option value="devries">Dr. de vries</option>
<option value="jansen">Dr. jansen</option>
</select>
...
Ik bedoelde meer vanaf een andere pagina, zodat er een default value wordt meegegeven aan die dropdown (die mensen zelf nog wel kunnen wijzigen).

De rest van je feedback ga ik proberen. Of kan ik beter FormBuilder gebruiken? Dat kan ook namelijk, die gebruikte ik vroeger altijd , alleen omdat CGBF up2date gehouden wordt en FB al tijden niet geupdate is, leek me dat een betere keuze.

Re: LISE koppelen aan Formulier (CGBetterForms)

Posted: Fri Oct 19, 2018 8:50 am
by deactivated010521
FormBuilder is compatible met cmsms v2 maar styling is met CGBF toch een stuk eenvoudiger.

Als je een "default" value wilt meegeven aan een formulier zou je deze op een of andere manier moeten verwerken in de url of moeten opslaan in een cookie of localstorage.

Variable meegeven aan url:
- via een query string: yourwebsite.com/page?var=defaultvalue
- via een #hash: yourwebsite.com/page#defaultvalue

Op de formulier pagina zou je de opgeslagen of doorgegeven waarde moeten uitlezen en verwerken. Waarschijnlijk met client-side JavaScript hoewel cookies en query strings ook server-side uitgelezen kunnen worden.

Re: LISE koppelen aan Formulier (CGBetterForms)

Posted: Mon Oct 22, 2018 9:39 pm
by velden
Ik denk dat je een default waarde zou kunnen doorgeven door te linken naar een LISE DETAIL template en daarin het CGBF formulier te laden.

Dan kun je wellicht zoiets doen als:

Code: Select all

{cgbf_set key='name' value=$entry->title}

Lees ook hier even het antwoord van Robert op mijn 'bug' report : http://dev.cmsmadesimple.org/bug/view/11742
Dat maakt het wellicht iets duidelijker.

Dit formulier https://tinyurl.com/yavwnccr is ook gemaakt met CGBF. De waardes in de eerste twee dropdowns worden er mbv javascript (jQuery) ingezet. Dat is dus ook een mogelijkheid; dan laat je de summary action van LISE een javascript array of object aanmaken die je dan weer kunt gebruiken om later dynamisch de dropdowns te vullen.

Re: LISE koppelen aan Formulier (CGBetterForms)

Posted: Wed Nov 14, 2018 12:38 am
by brentnl
Inmiddels heb ik het werkend!

Code: Select all

{capture assign="specialistdropdown" }{LISETeam template_summary="dropdownform"}{/capture}

{CGBetterForms form="contact"}

 
Dit is m'n code op de pagina, en in mn CGBetterforms template heb ik dit;

Code: Select all

    <div class="row">
     <label for="specialist">Afspraak met:</label>
     <select id="specialist" name="specialist" class="form-control">
    {$specialistdropdown}
    </select>
  </div>
En dat werkt!

Nu zit ik nog met één probleem; ik krijg het niet voor elkaar om de naam/email van de afzender weer te geven bij de admin die het formulier ontvangt. Het reply adres pakt hij wel zoals bedoeld, maar ik wil ook gewoon netjes de naam (of mailadres) van degene die het formulier invult zien als afzender.

Ik gebruik de handler Send an email to fixed addresses, with reply-to as user address

De mails die ik nu ontvang als ik het formulier invul zijn allemaal blanco qua afzender. Onderwerp werkt wel gewoon zoals verwacht.