terminal42 / contao-conditionalformfields

Display form fields conditionally in Contao Open Source CMS
MIT License
18 stars 13 forks source link

Formularversand (NC) überträgt die bedingten Inhaltsfelder nicht #50

Closed con2net closed 3 years ago

con2net commented 3 years ago

Ich versuche Formular-Felder abhängig von einer Checkbox-Auswahl anzuzeigen und deren Inhalte mit Hilfe des Notification Centers per E-Mail zu übermitteln.

Leider enthält die erhaltene E-Mail, den Inhalt der bedingten Felder nicht.

Ich habe zur Kontrolle ein ganz frisch installiertes Contao: 4.9.11, contao-conditionalformfields: 2.3.3 und Notification Center 1.5.18 aufgebaut.

Ich lege ein neues Formular mit einem Checkbox-Menü und 2 Optionen an. Ich lege für jede der beiden Optionen ein Fieldset mit einem Textfeld an

und

trage an den Fieldsets die Bedingungen zur Anzeige ein ($feldname == 'option1') etc...

Ich probiere im Frontend die Funktion und alles klappt wie gewünscht. Je nach ausgewählter Option werden entweder das eine, das andere oder beide Tetxfelder angezeigt und können ausgefüllt werden. Soweit so gut.

Ich lege im Notification Center eine einfache Benachrichtigung mit dem Inhalt ##raw_data## an und weise die Benachrichtigung dem Formular zu. Ich ergänze das Formular noch um ein "freistehendes" Textfeld für eine E-Mail-Adresse und einen Absendebutton. Ich fülle das Formular im Frontend aus und versende.

Die Benachrichtigung kommt an, aber die Werte der Textfelder aus den Fieldsets sind nicht enthalten. Nur die eingetragene E-Mail-Adresse und die getroffene Auswahl, ist enthalten.

Blende ich die Fieldsets aus, lasse aber das darin enthaltene Textfeld stehen, dann wird dessen Inhalt übermittelt.

Leider gibt mir die Doku keine Hinweise auf eine Lösung und Cache etc sollte ich alles korrekt entfernt haben. Die Inhalte der bedingten Fieldsets erscheinen nicht der E-Mail.

Könnte es sein, dass es da nun ein neuen Bug gibt oder mache ich noch etwas grundsätzlich falsch und vergesse etwas anzugeben?

con2net commented 3 years ago

Hi Team, ich hatte vergessen diesen issue wieder zu schließen. Grundsätzlich scheint alles zu funktionieren. Mein Problem lag daran, dass ich für die Bedingungsprüfung im Fieldset, die Werte eines Checkboxen-Menüs mit einer "normalen" Abfrage abgefragt hatte: also z.B. ($sportart == 'mtb') || ($sportart == 'mtb,segeln'). Das tückische daran ist, dass es vordergründig im Frontend auch so aussieht als wäre alles korrekt. Die bedingte Anzeige klappte super. Aber es wurden eben leider keine Werte an NC übertragen. Erst nach einigem rumprobieren habe ich es dann mit der in_array-Version probiert und siehe an, wenn man diese Art für das Checkbox-Menü verwendet, DANN werden auch die Werte der bedingten Felder an das Notification Center weitergeleitet. Phew ;-)