Hallo Jonas,
Zitat von oben:
Wichtige Angaben für fast jede Frage:
V1: Welche Visforms-Version läuft?
V2: Welche Joomla-Version läuft?
V3: Welche PHP-Version läuft?
Deine Idee und Umsetzung funktionieren in meinem Beispiel ohne Einschränkung.
Das Beispiel zeigt noch eine weitere Möglichkeit mit nur einem einzigen Feld für den Text in der E-Mail.
Das Feld kann vom Typ 'Text' oder 'Versteckt' sein und hat jeweils einen und SQL-Text (siehe unten).
Beim Feld-Typ 'Versteckt' wird das Feld automatisch nicht angezeigt und es entfällt die manuelle Unterdrückung der Anzeige durch eine eigenen CSS-Klasse.
Mein Beispiel:
Formular ohne Auswahl:
vi-solutions.de/forum-uploads/dependent-hidden-field-form-1.png
Formular mit Auswahl 'label-2' in 'option-1':
vi-solutions.de/forum-uploads/dependent-hidden-field-form-2.png
Formular mit Auswahl 'label-2' in 'option-2':
vi-solutions.de/forum-uploads/dependent-hidden-field-form-3.png
Formular-Daten-Ansicht:
vi-solutions.de/forum-uploads/dependent-...-field-form-data.png
Formular-Konfiguration:
Reiter 'Frontend Webassets', Unter-Reiter 'Formular',
Parameter 'CSS' =
.hide-me {
display: none;
}
Feld-Konfigurationen und Aufgaben:
Feld 'option-1': Typ Listbox, Steuerfeld
Steuert die Anzeige von bedingtem Feld 'option-2':
'option-1' = 'label2' --> 'option-2' ist sichtbar
Feld 'option-2': Typ Listbox, bedingtes Feld und Steuerfeld
Steuert die Anzeige von bedingten Feldern 'text-1', 'text-2':
'option-2' = 'label1' --> 'text-1' ist sichtbar
'option-2' = 'label2' --> 'text-2' ist sichtbar
Feld 'text-1': Typ Text, bedingtes Feld
Enthält einen Startwert: Feld-Konfiguration, Reiter 'Grundeinstellungen', Gruppe 'Startwert-Einstellungen':
Parameter 'Feld füllen mit' = 'Startwert'
Parameter 'Startwert' = 'Wert text-1'
Wird versteckt durch eigene CSS-Klasse: Feld-Konfiguration, Reiter 'Layout', Gruppe 'CSS-Klassen-Einstellungen':
Parameter 'CSS Klasse Control-Gruppe' = 'hide-me'
Feld 'text-2': Typ Text, bedingtes Feld
Enthält einen Startwert: Feld-Konfiguration, Reiter 'Grundeinstellungen', Gruppe 'Startwert-Einstellungen':
Parameter 'Feld füllen mit' = 'Startwert'
Parameter 'Startwert' = 'Wert text-2'
Wird versteckt durch eigene CSS-Klasse: Feld-Konfiguration, Reiter 'Layout', Gruppe 'CSS-Klassen-Einstellungen':
Parameter 'CSS Klasse Control-Gruppe' = 'hide-me'
Feld 'text-3': Typ Text
Wird versteckt durch eigene CSS-Klasse: Feld-Konfiguration, Reiter 'Layout', Gruppe 'CSS-Klassen-Einstellungen':
Parameter 'CSS Klasse Control-Gruppe' = 'hide-me'
Ist ein SQL-Feld: Feld-Konfiguration, Reiter 'Grundeinstellungen', Gruppe 'Dynamische-Einstellungen':
Parameter 'SQL-Feld' = 'Ja'
Parameter 'Bei Änderung von nachladen' = 'option-2'
Parameter 'Feldwert SQL-Statement' =
select CASE
WHEN 'value1' in ${input:option-2} THEN 'result-value1'
WHEN 'value2' in ${input:option-2} THEN 'result-value2'
ELSE ''
END;
Feld 'hidden-1': Typ Versteckt
Ist ein SQL-Feld: Feld-Konfiguration, Reiter 'Grundeinstellungen', Gruppe 'Dynamische-Einstellungen':
Parameter 'Bei Änderung von nachladen' = 'option-2'
Parameter 'SQL-Feld' = 'Ja'
Parameter 'Feldwert SQL-Statement' =
select CASE
WHEN 'value1' in ${input:option-2} THEN 'result-value1'
WHEN 'value2' in ${input:option-2} THEN 'result-value2'
ELSE ''
END;
Fazit:
- Die CSS-Eigenschaft 'display: none' hat keinen Einfluss auf die Übertragung der Feld-Werte beim Absenden des Formulars.
Das soll auch nicht sein.
Das HTML-Attribut 'disabled' verhindert die Übermittlung von Werten.
- Es geht auch mit nur einem (1) Feld vom Typ 'Text' und 'Versteckt'.
Damit erleichtert sich der Aufbau des E-Mail-Templates und des PDF-Templates.
Auch in der automatisch erzeugten Daten-Liste in der E-Mail wird es einfacher lesbar.
Liebe Grüße, Ingmar