Joomla 5 Mitteilung

Wir freuen uns mitteilen zu können, dass seit dem 29. Januar 2024 alle unsere Joomla Erweiterungen mit Joomla 5 kompatible sind.

Für alle die gerade noch von Joomla 3 auf 4 aktualisieren: Anleitungen für die Joomla 4 Migration gibt es hier:

Es gibt nun auch eine eigenständige Dokumentation für Visforms für Joomla 4 und für Visforms auf Joomla 5

Forum

Visforms Subscription Inhaber können in unserem Forum Fragen stellen. Bitte mit dem entsprechenden Benutzer anmelden.
Jeder kann lesend auf das Forum zugreifen.

Bitte stellen Sie nur 1 Frage pro Thema.

Wichtig Angaben für fast jede Frage:
V1: Welche Visforms-Version läuft?
V2: Welche Joomla-Version läuft?
V3: Welche PHP-Version läuft?

Name der Felder mehrfach vergeben

Mehr
2 Jahre 6 Monate her #8157 von kthiemig
Name der Felder mehrfach vergeben wurde erstellt von kthiemig
Hallo zusammen,

ich habe 3 Dropdown Felder erstellt. Hierbei nutze ich die bedingte Anzeige. Jetzt habe ich das Problem, dass ich für die unterschiedlichen Antwortoptionen verschiedene Feldnamen vergeben muss. Somit schreibt er in der Liste auch mehrere Felder.
Kann man dies irgendwie zusammenfassen?

Anforderung:
Dropdown 1:
Antwort1 -> bedingte Anzeige -> bei Auswahl zeige Dropdown 2
Antwort2-> bedingte Anzeige -> bei Auswahl zeige Dropdown 3

Dropdown 2:
Antwort1
Antwort2

Dropdown 3:
Antwort3
Antwort4

Die Auswahl von Dropdown 2 ODER Dropdown 3 soll in ein Tabellenfeld geschrieben werden.

Ich hoffe das war jetzt einigermaßen verständlich. 
Vielen Dank für jede Unterstützung.



 

Mehr
2 Jahre 6 Monate her - 2 Jahre 6 Monate her #8164 von Administrator IV
Administrator IV antwortete auf Name der Felder mehrfach vergeben
Hallo kthiemig,

du verwendest am Besten an Stelle der beiden Felder 'Dropdown 2' und 'Dropdown 3' nur ein einziges Feld vom Typ 'Listbox Sql'.
In dem dort notwendigen SQL Statement kannst du
1. mehrere statische Rüchgabezeilen festlegen
2. eine Fallunterscheidung gemäß der Auswahl in 'Dropdown 1' durchführen

Hier ein funktionierendes Beispiel.
Du schreibst/editierst das leicht umfangreiche SQL-Statement eher in einem Texteditor als direkt in der Feldkonfiguration.

Mein steuerndes Feld hat den Namen 'sql-6', ist auch vom Typ 'Listbox Sql' und liefert fest 3 Optionen.
Es hat das folgende SQL-Statement:

Code:
SELECT 'AntwortA' AS label, 'AntwortA' AS value UNION ALL SELECT 'AntwortB' AS label, 'AntwortB' AS value UNION ALL SELECT 'AntwortC' AS label, 'AntwortC' AS value;


Mein abhängiges Feld hat den Namen 'sql-7' und ist ebenfalls vom Typ 'Listbox Sql'.
Es zeigt nur dann die jeweiligen 2 Optionen an, wenn in Feld 'sql-6' die Option 'AntwortA' oder 'AntwortB' ausgewählt ist.
Bei der Auswahl von 'AntwortC' enthält es keine Optionen.
Es hat das folgende SQL-Statement:

Code:
select CASE WHEN 'AntwortA' in ${input:sql-6} THEN 'Antwort1' WHEN 'AntwortB' in ${input:sql-6} THEN 'Antwort3' END as value, CASE WHEN 'AntwortA' in ${input:sql-6} THEN 'Antwort1' WHEN 'AntwortB' in ${input:sql-6} THEN 'Antwort3' END as label union all select CASE WHEN 'AntwortA' in ${input:sql-6} THEN 'Antwort2' WHEN 'AntwortB' in ${input:sql-6} THEN 'Antwort4' END as value, CASE WHEN 'AntwortA' in ${input:sql-6} THEN 'Antwort2' WHEN 'AntwortB' in ${input:sql-6} THEN 'Antwort4' END as label;


Eine Zeilenschaltung ist nur zwischen den select-Teilen erlaubt, also unmittelbar vor dem 'union all select'.
Innerhalb eines select-Teils darf keine Zeilenschaltung stehen.

Folgende Parameter sind (für mein abhängiges Feld 'sql-7') auf dem Reiter 'Grundeinstellungen' noch zu setzen:
'Reload erlauben' = 'Ja'
'Feld verstecken, wenn Liste leer ist' = 'Ja'
(bedeutet keine Anzeige des Feldes 'sql-7', wenn in 'sql-6' keine Option oder Option 'AntwortC' gewählt ist)
'Bei Änderung von nachladen' = 'sql-6'

Noch was:
Wenn du viele Optionen hast, wird das SQL-Statement groß und recht unübersichtlich.
Dann ist es wesentlich besser mit zwei kleinen Hilfstabellen zu arbeiten.
Die 2 Felder einer Hilfstabelle wären etwa 'label' und 'value'.
Eine Tabelle für die Optionen für 'sql-7' wenn in 'sql-6' die 'AntwortA' gewählt ist.
Eine Tabelle für die Optionen für 'sql-7' wenn in 'sql-6' die 'AntwortB' gewählt ist.

Und noch was:
Beide Hilfstabellen kannst du auch mit Visforms erzeugen und füllen.

Und dann noch was:
Es geht auch mit nur 1 Hilfstabelle.
Diese eine Tabelle benötigt dann aber ein weiteres Feld das festlegt, zu welcher Gruppe der Eintrag gehört ('AntwortA' oder 'AntwortB').
Die 3 Felder der Hilfstabelle wären dann etwa 'label' und 'value' und 'group'.

Siehe auch:
www.w3schools.com/sql/sql_union.asp
www.w3schools.com/sql/sql_case.asp
www.vi-solutions.de/de/support/dokumenta...r-mit-optionenlisten

Gruß, Ingmar

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).
Letzte Änderung: 2 Jahre 6 Monate her von Administrator IV.
Folgende Benutzer bedankten sich: MaliRaj

Mehr
2 Jahre 6 Monate her #8165 von kthiemig
kthiemig antwortete auf Name der Felder mehrfach vergeben
Wow, jetzt bin ich erstmal platt.

Vielen Dank für diese ausführliche und nachvollziehbare Antwort. Das nenne ich mal einen perfekten Support.

Ich werde das mal nachbauen und testen. Ich glaube mit dem Hinweis komme ich klar. Stehe in Visforms noch ganz am Anfang.

Danke!

Mehr
2 Jahre 6 Monate her - 2 Jahre 6 Monate her #8166 von prffrost
prffrost antwortete auf Name der Felder mehrfach vergeben
Ich hätte dazu auch eine Frage:

Noch was:
Wenn du viele Optionen hast, wird das SQL-Statement groß und recht unübersichtlich.
Dann ist es wesentlich besser mit zwei kleinen Hilfstabellen zu arbeiten.
Die 2 Felder einer Hilfstabelle wären etwa 'label' und 'value'.
Eine Tabelle für die Optionen für 'sql-7' wenn in 'sql-6' die 'AntwortA' gewählt ist.
Eine Tabelle für die Optionen für 'sql-7' wenn in 'sql-6' die 'AntwortB' gewählt ist.

hast Du dazu ein Beispiel?

 
Letzte Änderung: 2 Jahre 6 Monate her von prffrost.

Mehr
2 Jahre 6 Monate her - 2 Jahre 6 Monate her #8168 von Administrator IV
Administrator IV antwortete auf Name der Felder mehrfach vergeben
Moin prffrost,

meine beiden Hilfstabellen mit den jeweiligen Daten für die Optionen habe ich kurzerhand mit der Visforms 'Form Factory' erzeugt.

Mit der 'Form Factory':
- auf Reiter 'Individuelles Formular' gehen, Formular Titel und Namen vergeben, 2 Felder vom Typ 'Text' hinzufügen und den Button 'Formular und Felder erzeugen' gedrückt
- auf Reiter 'Beispieldaten' gehen und Button 'Daten erzeugen' drücken (einmal 10 Datensätze und einmal 20 Datensätze, weil wegen Unterschied)

Danach hatte ich passend zu den beiden neuen Formularen die beiden Visforms Daten-Tabellen '#__visforms_13' und '#__visforms_14'.

Mein steuerndes Feld hat weiterhin den Namen 'sql-6' und bekommt das folgende leicht abgewandelte SQL-Statement:
Code:
SELECT 'AntwortA' AS label, 'group_a' AS value UNION ALL SELECT 'AntwortB' AS label, 'group_b' AS value UNION ALL SELECT 'AntwortC' AS label, 'no-options' AS value;


Mein neues abhängiges Feld hat den Namen 'sql-8' und ist ebenfalls vom Typ 'Listbox Sql'.
Es zeigt nur dann die jeweiligen Optionen aus einer Hilfstabelle an, wenn in Feld 'sql-6' die Option 'AntwortA' oder 'AntwortB' ausgewählt ist.
Bei der Auswahl von 'AntwortA' enthält es 10 Optionen.
Bei der Auswahl von 'Antwortb' enthält es 20 Optionen.
Bei keiner Auswahl oder Auswahl 'AntwortC' enthält es keine Optionen.

Es hat das folgende SQL-Statement:
Code:
select F96 as label, F97 as value from jx_visforms_13 where 'group_a' in ${input:sql-6} union select F100 as label, F101 as value from jx_visforms_14 where 'group_b' in ${input:sql-6};

Eine Zeilenschaltung ist nur zwischen den select-Teilen erlaubt, also unmittelbar vor dem 'union select'.
Innerhalb eines select-Teils darf keine Zeilenschaltung stehen.

Das Ganze geht auch mit Visforms-externen Hilfstabellen, die nicht durch Visforms erzeugt/gefüllt/editiert werden.

Zur Erzeugung habe ich kurzerhand folgende SQL-Statements in der Datenbank-Console meiner IDE genutzt:
Code:
drop table if exists antwort_a; create table antwort_a (label text,value text); insert into antwort_a (label, value) VALUES ('label-a-1', 'value-a-1'), ('label-a-2', 'value-a-2'), ('label-a-3','value-a-3'); drop table if exists antwort_b; create table  antwort_b (label text,value text); insert into antwort_b (label, value) VALUES ('label-b-1', 'value-b-1'), ('label-b-2', 'value-b-2'), ('label-b-3','value-b-3');


Mein neues abhängiges Feld hat den Namen 'sql-9' und ist ebenfalls vom Typ 'Listbox Sql'.

Es hat das folgende SQL-Statement:
Code:
select label, value from antwort_a where 'group_a' in ${input:sql-6} union select label, value from antwort_b where 'group_b' in ${input:sql-6};

Es geht bei meinen externen Hilfstabellen, die ja ausschließlich die Felder label und value enthalten, auch noch kürzer:
Code:
select * from antwort_a where 'group_a' in ${input:sql-6} union select * from antwort_b where 'group_b' in ${input:sql-6};

Den where-Teil zur Auswahl der beiden 'Selects', habe ich unverändert von Feld 'sql-8' einfach übernommen.
Die Umbenennung der Feldnamen (as label, as value) entfällt in diesem Fall, da die Feld-Namen bereits passen.

Feld 'sql-8' und Feld 'sql-9' reagieren nun beide auf die Auswahl in Feld 'sql-6'.

Gruß, Ingmar

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).
Letzte Änderung: 2 Jahre 6 Monate her von Administrator IV.
Folgende Benutzer bedankten sich: prffrost

Mehr
2 Jahre 6 Monate her #8190 von prffrost
prffrost antwortete auf Name der Felder mehrfach vergeben
Sauber .. das hat alles funktioniert...

aber eins hab Ich noch ....

kann Ich auch damit "bedingte Anzeige" nutzen ..
also statt ein "selectsql" eine Typ von "Textare" oder "Radiobutton" aufrufen?

Moderatoren: Administrator AVAdministrator IV
Powered by Kunena Forum