Forum

Thread tagged as: Problem, Forms

Updated fields in Perch Form not submitting

Hello!

A form I use is included on an event page and I pass some of the events field values into the form to use as hidden fields.

Now I want to add a couple of radio groups for the user to choose workshops from. This works as expected: The Perch radio inputs get converted into multiple input/label groups. I can select from them, submit the form and I get a success message. But the new radio field values neither show up in the form responses, nor are they sent with the Perch emails. It’s as if I never included the new fields in the form.

Republishing everything, saving the form options multiple times in order to clear the cache, switching to development mode… nothing seems to work. Am I missing something obvious here?

I’m currently testing on my MAMP Pro development server.

event.php: I save some event information and it gets passed into the form template (this works, I get the event values in my form responses).

    $event = perch_events_custom(array(
        'filter' => 'eventSlug',
        'match' => 'eq',
        'value' => perch_get('s'),
        'skip-template' => 'true'
    ), true);

    $eventTitle = $event[0]['eventTitle'];
    $eventLocation = $event[0]['eventLocation'];
    $eventDateTime = $event[0]['eventDateTime'];
    $eventPrice = $event[0]['eventPrice'];
    $eventPriceVKK = $event[0]['eventPriceVKK'];
    $eventUnits = $event[0]['eventUnits'];
    $eventUnits = $event[0]['eventCategory'];
    $eventAcademy = $event[0]['eventAcademy'];

    PerchSystem::set_vars(array(
        'eventTitle' => $eventTitle,
        'eventLocation' => $eventLocation,
        'eventDateTime' => $eventDateTime,
        'eventPrice' => $eventPrice,
        'eventPriceVKK' => $eventPriceVKK,
        'eventUnits' => $eventUnits,
    'eventAcademy' => $eventAcademy
    ));

    ?>
    </div>
</div>

<div class="o-wrapper o-wrapper--fullwidth u-pull--down">
    <?php
    perch_content_custom('Anmeldeformular Weiterbildung', array());
    ?>
</div>

form--event.html: The part where it says »Themenauswahl« with the five radio groups is the part that gets ignored. The rest works fine.

<perch:form class="c-form c-form--event" id="form--event" method="post" app="perch_forms">
  <h3 class="c-form__headline">Anmeldung:</h3>

  <perch:error for="all" type="general">
    <div class="c-form__messagebox c-form__messagebox--large c-form__messagebox--error">
      <perch:content id="fehler--allgemein" label="Fehlermeldung: Allgemein" />
    </div>
  </perch:error>

  <perch:error for="all" type="required">
    <div class="c-form__messagebox c-form__messagebox--large c-form__messagebox--error">
      <perch:content id="fehler--required" label="Fehlermeldung: Benötigte Felder" />
    </div>
  </perch:error>

  <perch:success>
  <div class="c-form__messagebox c-form__messagebox--large c-form__messagebox--success">
    <perch:content id="success" type="textarea" label="Meldung: Erfolgreicher Versand" textile="true" editor="markitup" />
  </div>
  </perch:success>

  <fieldset class="c-form__fieldset c-form__fieldset--event">
    <legend>Kontaktdaten</legend>

    <div class="c-form__group c-form__group--required">
      <perch:label class="c-form__label" for="vorname">Name:</perch:label>
      <perch:input class="c-form__input c-form__input--text c-form__input--half" type="text" id="vorname" label="Vorname" placeholder="Vorname" required="true" />
      <perch:input class="c-form__input c-form__input--text c-form__input--half" type="text" id="nachname" label="Nachname" placeholder="Nachname" required="true" />
      <perch:error for="vorname" type="required"><p class="c-form__messagebox c-form__messagebox--error">Bitte geben Sie Ihren Vornamen ein!</p></perch:error>
      <perch:error for="nachname" type="required"><p class="c-form__messagebox c-form__messagebox--error">Bitte geben Sie Ihren Nachnamen ein!</p></perch:error>
    </div>

    <div class="c-form__group c-form__group--required">
      <perch:label class="c-form__label" for="strasse">Straße:</perch:label>
      <perch:input class="c-form__input c-form__input--text" type="text" id="strasse" label="Straße und Nr." placeholder="Straße und Nr." required="true" />
      <perch:error for="strasse" type="required"><p class="c-form__messagebox c-form__messagebox--error">Bitte geben Sie Straße und Straßennummer ein!</p></perch:error>
    </div>

    <div class="c-form__group c-form__group--required">
      <perch:label class="c-form__label" for="plz">PLZ und Ort:</perch:label>
      <perch:input class="c-form__input c-form__input--text c-form__input--short" type="text" id="plz" label="PLZ" placeholder="PLZ" required="true" />
      <perch:input class="c-form__input c-form__input--text c-form__input--long" type="text" id="ort" label="Ort" placeholder="Ort" required="true" />
      <perch:error for="strasse" type="required"><p class="c-form__messagebox c-form__messagebox--error">Bitte geben Sie PLZ und Ort ein!</p></perch:error>
    </div>

    <div class="c-form__group c-form__group--required">
      <perch:label class="c-form__label" for="email">E-Mail:</perch:label>
      <perch:input class="c-form__input c-form__input--text" type="email" id="email" label="E-Mail-Adresse" placeholder="E-Mail-Adresse" required="true" />
      <perch:error for="email" type="required"><p class="c-form__messagebox c-form__messagebox--error">Für die Anmeldung ist eine gültige E-Mail-Adresse notwendig!</p></perch:error>
      <perch:error for="email" type="format"><p class="c-form__messagebox c-form__messagebox--error">Bitte geben Sie eine gültige E-Mail-Adresse an!</p></perch:error>
    </div>

    <div class="c-form__group c-form__group--required">
      <perch:label class="c-form__label" for="telefon">Telefon (betrieblich):</perch:label>
      <perch:input class="c-form__input c-form__input--text" type="text" id="telefon" label="Telefonnummer (betrieblich)" placeholder="Telefonnummer (betrieblich)" required="true" />
      <perch:error for="strasse" type="required"><p class="c-form__messagebox c-form__messagebox--error">Bitte geben eine Telefonnummer an, unter der wir Sie erreichen können!</p></perch:error>
    </div>

    <div class="c-form__group">
      <perch:label class="c-form__label" for="vkk-id">VKK-Mitgliedsnummer:</perch:label>
      <perch:input class="c-form__input c-form__input--text" type="text" id="vkk-id" label="VKK-Mitgliedsnummer" placeholder="VKK-Mitgliedsnummer" />
    </div>

    <div class="c-form__group">
      <perch:input class="c-form__input--checkbox" type="checkbox" id="vkk-signup" label="Mitgliedschaftsanmeldung" value="Ja" /><perch:label class="c-form__label--checkbox" for="vkk-signup">VKK-Mitglied werden <a href="/mitglied-werden/" target="_blank">(Informationen und Kosten)</a></perch:label>
    </div>

    <div class="c-form__group">
      <p class="c-form__note">Die Seminargebühren für Mitglieder unterscheiden sich deutlich von denen für die übrigen Teilnehmer. Sollten Sie die Mitgliedschaft mit anmelden, so gelten dann bereits die niedrigeren Konditionen.</p>
    </div>

  </fieldset>

  <fieldset class="c-form__fieldset c-form__fieldset--event">
    <legend>Rechnungsadresse (falls abweichend)</legend>

    <div class="c-form__group">
      <perch:label class="c-form__label" for="name--betrieb">Name des Betriebes:</perch:label>
      <perch:input class="c-form__input c-form__input--text" type="text" id="name--betrieb" label="Name des Betriebes" placeholder="Name des Betriebes" />
    </div>

    <div class="c-form__group">
      <perch:label class="c-form__label" for="abteilung--betrieb">Abteilung/Adressat:</perch:label>
      <perch:input class="c-form__input c-form__input--text" type="text" id="abteilung--betrieb" label="Abteilung/Adressat" placeholder="Abteilung/Adressat" />
    </div>

    <div class="c-form__group">
      <perch:label class="c-form__label" for="strasse--betrieb">Straße:</perch:label>
      <perch:input class="c-form__input c-form__input--text" type="text" id="strasse--betrieb" label="Straße und Nr." placeholder="Straße und Nr." />
    </div>

    <div class="c-form__group">
      <perch:label class="c-form__label" for="plz--betrieb">PLZ und Ort:</perch:label>
      <perch:input class="c-form__input c-form__input--text c-form__input--short" type="text" id="plz--betrieb" label="PLZ" placeholder="PLZ" />
      <perch:input class="c-form__input c-form__input--text c-form__input--long" type="text" id="ort--betrieb" label="Ort" placeholder="Ort" />
    </div>

  </fieldset>

    <fieldset class="c-form__fieldset c-form__fieldset--event">
      <legend>Themenauswahl</legend>

      <div class="c-form__group">
        <p class="c-form__note">Ganz herzlich bitten wir Sie darum, dass Sie uns bereits bei Ihrer Anmeldung Ihre Themenwünsche mitteilen. Sie tragen so zu einer höheren Planungssicherheit bei. Da sich einige Workshops zeitlich überschneiden (siehe Anmerkungen), haben Sie zusätzlich die Option „Weiter mit vorheriger Auswahl“.</p>
      </div>

        <h3>Dienstag, 25. Oktober 2016, 9:15-13:00 (mit Pause):</h3>
        <perch:input id="select1" type="radio" wrap="div.c-form__group--nowrap" required="true" options="Dipl.-Kfm. Michael Edinger: Durchblick im „Zahlensalat“ - &shy;betriebswirtschaftliche Rezepte im Küchenbetrieb,RA Dr. Frank Wetzling / RA Maren Habel: Umgang mit schwierigen Mitarbeitern - &shy;Leistungsmängel / Fehlzeiten / Integrationsdefizite" />

        <h3>Dienstag, 25. Oktober 2016, 14:00-16:00:</h3>
        <perch:input id="select2" type="radio" wrap="div.c-form__group--nowrap" required="true" options="Prof. Dr. Margot Steinel: Erstellung eines computerunterstützten Rezeptverwaltungssystems (Laptop ist erforderlich),Dr. Elke Jaspers: Bakterien – Nicht nur Feinde; sondern auch Freunde!,Weiter mit vorheriger Auswahl" />
        <small>Wichtig: Zeitgleich findet Teil 3 des Vortrags »Durchblick im „Zahlensalat“« statt!</small>

        <h3>Dienstag, 25. Oktober 2016, 16:15-18:15:</h3>
        <perch:input id="select3" type="radio" wrap="div.c-form__group--nowrap" required="true" options="Gaby Henning: Dysphagiemanagement im stationären Bereich,Weiter mit vorheriger Auswahl" />
        <small>Wichtig: Zeitgleich findet Teil 4 des Vortrags »Durchblick im „Zahlensalat“«, sowie Teil 2 des Vortrags »Bakterien: Nicht nur Feinde, sondern auch Freunde!« statt!</small>

        <h3>Mittwoch, 26. Oktober 2016, 8:00-12:00 (mit Pause):</h3>
        <perch:input id="select4" type="radio" wrap="div.c-form__group--nowrap" required="true" options="Kerstin Bollinger-Schmidt: Achtsam führen und kommunizieren, RA Radu Armin Vasilescu: Servicegesellschaften und Joint Ventures &shy;im Gesundheitswesen; sinnvoll oder Notlösung?" />

        <h3>Dienstag, 25. Oktober 2016, 13:00-15:45 (mit Pause):</h3>
        <perch:input id="select5" type="radio" wrap="div.c-form__group--nowrap" required="true" options="RA Prof. Dr. Stefan Mensler: Rechtsfragen des Arbeitsschutzes - &shy;Arbeitsschutzrechtliche Pflichten und Rechtsfolgen ihrer Nichtbeachtung,M. Christine Klöber: Lebensqualität in Wohngruppen" />

    </fieldset>

  <fieldset class="c-form__fieldset c-form__fieldset--event">
    <legend>Sonstiges</legend>

    <div class="c-form__group">
      <p class="c-form__note">Falls Sie Fragen oder Anmerkungen haben, melden wir uns zeitnahe bei Ihnen! Wenn Sie eine Zimmerreservierung wünschen, teilen Sie uns bitte Ihren An- und Abreisetag mit. Bei Anmeldung zur VKK-Herbst-Akademie ist die Übernachtung im Preis inbegriffen.</p>
    </div>

    <div class="c-form__group">
      <perch:label class="c-form__label" for="note">Anmerkungen:</perch:label>
      <perch:input class="c-form__textarea" type="textarea" id="note" label="Anmerkungen" placeholder="Ihr Text"></textarea>
    </div>

  </fieldset>

  <fieldset class="c-form__fieldset c-form__fieldset--event">
    <legend>Absenden</legend>

    <div class="c-form__group">
      <p class="c-form__note">Mit dem Versand der Anmeldung erklären Sie sich mit den <a href="/verband/agb/" target="_blank">Allgemeinen Geschäftsbedingungen</a> einverstanden.</p>
    </div>

    <div class="c-form__group">
      <perch:input id="eventTitle" label="Weiterbildung" type="hidden" value="<perch:content id="eventTitle" type="hidden" />" />
      <perch:input id="eventLocation" label="Weiterbildungsort" type="hidden" value="<perch:content id="eventLocation" type="hidden" />" />
      <perch:input id="eventDateTime" label="Erster Termin" type="hidden" value="<perch:content id="eventDateTime" type="hidden" />" />
      <perch:input id="eventUnits" label="Unterrichtseinheiten" type="hidden" value="<perch:content id="eventUnits" type="hidden" />" />
      <perch:input id="eventPrice" label="Preis" type="hidden" value="<perch:content id="eventPrice" type="hidden" />" />
      <perch:input id="eventPriceVKK" label="Preis (VKK)" type="hidden" value="<perch:content id="eventPriceVKK" type="hidden" />" />
    </div>

    <div class="c-form__group">
      <perch:input class="c-btn c-btn--submit u-btn--fullwidth" type="submit" value="Anmeldung senden" />
    </div>

  </fieldset>

</perch:form>

Diagnostics Report:

Perch Runway: 2.8.31, PHP: 5.6.10, MySQL: mysqlnd 5.0.11-dev - 20120503 - $Id: 3c688b6bbc30d36af3ac34fdd4b7b5b787fe5555 $, with PDO
Server OS: Darwin, apache2handler
Installed apps: content (2.8.31), assets (2.8.31), categories (2.8.31), perch_blog (4.6), collection_6 (2.8.31), collection_2 (2.8.31), perch_events (1.9.3), perch_forms (1.8.3), collection_5 (2.8.31), collection_1 (2.8.31)
App runtimes: <?php $apps_list = array( 'content' , 'categories', 'perch_blog', 'perch_events', 'perch_forms', );
PERCH_LOGINPATH: /perch
PERCH_PATH: /Users/jannisborgers/Websites/vkk-ev-de/perch
PERCH_CORE: /Users/jannisborgers/Websites/vkk-ev-de/perch/core
PERCH_RESFILEPATH: /Users/jannisborgers/Websites/vkk-ev-de/perch/resources
Image manipulation: GD
PHP limits: Max upload 32M, Max POST 32M, Memory: 512M, Total max file upload: 32M
F1: 2edba60ed1f613d6dd804feb202456a2
Resource folder writeable: Yes
HTTP_HOST: vkk.dev
DOCUMENT_ROOT: /Users/jannisborgers/Websites/vkk-ev-de
REQUEST_URI: /perch/core/settings/diagnostics/
SCRIPT_NAME: /perch/core/settings/diagnostics/index.php
Jannis Borgers

Jannis Borgers 0 points

  • 5 years ago
Drew McLellan

Drew McLellan 2638 points
Perch Support

Are you talking about select1 to select5 ?

Yes, they are the ones.

Drew McLellan

Drew McLellan 2638 points
Perch Support

Have you tried adding the label attribute to them so that they can be represented in the output?

This solved my first issue, thanks Drew! I didn’t realize they need labels, which is logical in hindsight!

One more thing: I have a conditional in the email template, using a variable from my event.php because I only want to show the workshop-selection with a special kind of event (checkbox in the event item). The condition comes out false and only displays if I remove the conditional. The same conditional works with the form template (only displays the radio groups when the event has the special checkbox checked).

content/event.html (excerpt, working as expected)

  <perch:if id="eventAcademy" value="Herbst-Akademie">
    <fieldset class="c-form__fieldset c-form__fieldset--event">
      <legend>Themenauswahl</legend>

      <div class="c-form__group">
        <p class="c-form__note">Ganz herzlich bitten wir Sie darum, dass Sie uns bereits bei Ihrer Anmeldung Ihre Themenwünsche mitteilen. Sie tragen so zu einer höheren Planungssicherheit bei. Da sich einige Workshops zeitlich überschneiden (siehe Anmerkungen), haben Sie zusätzlich die Option „Weiter mit vorheriger Auswahl“.</p>
      </div>

        <h3>Dienstag, 25. Oktober 2016, 9:15-13:00 (mit Pause):</h3>
        <perch:input id="select1" label="Dienstag, 25. Oktober 2016, 9:15-13:00" type="radio" wrap="div.c-form__group--nowrap" required="true" options="Dipl.-Kfm. Michael Edinger: Durchblick im „Zahlensalat“ - &shy;betriebswirtschaftliche Rezepte im Küchenbetrieb,RA Dr. Frank Wetzling / RA Maren Habel: Umgang mit schwierigen Mitarbeitern - &shy;Leistungsmängel / Fehlzeiten / Integrationsdefizite" />

        <h3>Dienstag, 25. Oktober 2016, 14:00-16:00:</h3>
        <perch:input id="select2" label="Dienstag, 25. Oktober 2016, 14:00-16:00" type="radio" wrap="div.c-form__group--nowrap" required="true" options="Prof. Dr. Margot Steinel: Erstellung eines computerunterstützten Rezeptverwaltungssystems (Laptop ist erforderlich),Dr. Elke Jaspers: Bakterien – Nicht nur Feinde; sondern auch Freunde!,Weiter mit vorheriger Auswahl" />
        <small>Wichtig: Zeitgleich findet Teil 3 des Vortrags »Durchblick im „Zahlensalat“« statt!</small>

        <h3>Dienstag, 25. Oktober 2016, 16:15-18:15:</h3>
        <perch:input id="select3" label="Dienstag, 25. Oktober 2016, 16:15-18:15" type="radio" wrap="div.c-form__group--nowrap" required="true" options="Gaby Henning: Dysphagiemanagement im stationären Bereich,Weiter mit vorheriger Auswahl" />
        <small>Wichtig: Zeitgleich findet Teil 4 des Vortrags »Durchblick im „Zahlensalat“«, sowie Teil 2 des Vortrags »Bakterien: Nicht nur Feinde, sondern auch Freunde!« statt!</small>

        <h3>Mittwoch, 26. Oktober 2016, 8:00-12:00 (mit Pause):</h3>
        <perch:input id="select4" label="Mittwoch, 26. Oktober 2016, 8:00-12:00" type="radio" wrap="div.c-form__group--nowrap" required="true" options="Kerstin Bollinger-Schmidt: Achtsam führen und kommunizieren, RA Radu Armin Vasilescu: Servicegesellschaften und Joint Ventures &shy;im Gesundheitswesen; sinnvoll oder Notlösung?" />

        <h3>Dienstag, 25. Oktober 2016, 13:00-15:45 (mit Pause):</h3>
        <perch:input id="select5" label="Dienstag, 25. Oktober 2016, 13:00-15:45" type="radio" wrap="div.c-form__group--nowrap" required="true" options="RA Prof. Dr. Stefan Mensler: Rechtsfragen des Arbeitsschutzes - &shy;Arbeitsschutzrechtliche Pflichten und Rechtsfolgen ihrer Nichtbeachtung,M. Christine Klöber: Lebensqualität in Wohngruppen" />

    </fieldset>
  </perch:if>

forms/emails/event--autoresponse.html (excerpt, always results false)

          <perch:if id="eventAcademy" value="Herbst-Akademie">
            <p>Dienstag, 25. Oktober 2016, 9:15-13:00 (mit Pause):</p>
            <perch:email id="select1" />
            <p>Dienstag, 25. Oktober 2016, 14:00-16:00:</p>
            <perch:email id="select2" />
            <p>Dienstag, 25. Oktober 2016, 16:15-18:15:</p>
            <perch:email id="select3" />
            <p>Mittwoch, 26. Oktober 2016, 8:00-12:00 (mit Pause):</p>
            <perch:email id="select4" />
            <p>Dienstag, 25. Oktober 2016, 13:00-15:45 (mit Pause):</p>
            <perch:email id="select5" />
          <perch:else />
            <p>Else condition working!</p>
          </perch:if>

Is it possible that the email template doesn’t receive the values specified in event.php? Is there a workaround?

Drew McLellan

Drew McLellan 2638 points
Perch Support

The email template is processed completely distinctly from the form template. There's no overlap.

If you want to be able to test for something in the email template, it will need to be data that was posted as part of the form.

Perfect! Thanks again, Drew.

I passed the variable into a hidden field in my form template and tested for it in the email template.

As always: Thumbs up!

Bonus: It worked fine until I tried booking one of the other events. The form didn’t submit and resulted in a general error. This was due to the fact that the radio-groups were set to required, which doesn’t work when they are inside a conditional (required but not displayed). I worked around by removing the required attribute…