Joomla 5 Notice

We are pleased to announce that as of January 29, 2024, all of our Joomla extensions are compatible with Joomla 5.

For all who are still updateing from Joomla 3 to Joomla 4: Joomla 4 Migration instructions are available here:

There is now a separate Documentation for Visforms for Joomla 4 and for Visforms for Joomla 5!

Forum

Visforms Subscription user can ask questions in our forum. Please log in with the relevant user first.
Everybody can access the forum for reading.

Please only ask 1 question per topic.

Important information for almost every question:
V1: Which Visforms version is running?
V2: Which Joomla version is running?
V3: Which PHP version is running?

Datensatz ein weiteres Feld mitgeben

More
2 years 9 months ago #7894 by fap
Hallo Visforms-Team,

ist es möglich einem Datensatz ein weiteres (unsichtbares) Feld mitzugeben, dessen Inhalt abhängig von der Dropdown-Auswahl des Elternfeldes ist? Klingt verwirrend, ist es aber garnicht.


Das konkrete Beispiel:

In einer Firma gibt es 100 Mitarbeiter und 8 Vorgesetzte. Jedem Vorgesetzten sind also 5-15 Mitarbeiter unterstellt.

Ich habe eine Listbox, welche die Mitarbeiternamen enthält.

Wenn nun ein Mitarbeiter aus diesem Feld ausgewählt ist, soll im Feld "Vorgesetzter" automatisch und "read-Only" der entsprechende Vorgesetzte mit abgespeichert werden. Bestenfalls ist das Feld nicht sichtbar, das ist aber zweirangig.

Ich könnte das über über die Listbox-Optionen Wert<>Bezeichnung (Sowas wie [ Wert: Mitarbeiter56|Vorgesetzter3 ] <> [ Bezeichnung: Mitarbeiter56 ] ) lösen, allerdings muss ich in der Ansicht "Content Plugin Data View" nach dem Feld "Vorgesetzter" filtern. Also z.B. "Zeige mir alle Datensätze von allen Mitarbeitern die dem Vorgesetzten 3 unterstellt sind"

Habt Ihr eine Idee wie man das umsetzten könnte?

Über einen Tipp würde ich mich sehr freuen.

Vielen Dank und viele Grüße

More
2 years 9 months ago - 2 years 9 months ago #7896 by Administrator IV
Replied by Administrator IV on topic Datensatz ein weiteres Feld mitgeben
Hallo fap,

das ist mit Visforms gut und direkt umzusetzen.
Du brauchst dazu Folgendes:

1 - Eine Listbox, welche die Mitarbeiternamen enthält.
2 - Im aller einfachsten Fall: Eine Tabelle 'MV' in der Datenbank, welche 2 Felder enthält: Mitarbeiter und Vorgesetzter.
3 - Ein Visforms Feld vom Typ 'Listbox Sql'
3 a - Es selektiert mit dem hinterlegten SQL-Statement den Vorgesetzten aus der Tabelle 'MV' für den in (1) gewählten Mitarbeiter
3 b - Der in (1) gewählte Mitarbeiter ist ein Platzhalter in dem in (3) hinterlegten SQL-Statement
3 c - In der Feldkonfiguration Reiter 'Grundeinstellungen' Folgendes einstellen:
3 c 1 - Parameter 'Reload erlauben' = 'Ja'
3 c 2 - Parameter 'Einzige Option vorauswählen' = 'Ja'
3 c 3 - Parameter 'Bei Vorauswahl verstecken' = 'Ja'
3 c 4 - Parameter 'Bei Änderung von nachladen' = Die Listbox aus (1)
3 c 5 - Parameter 'SQL-Select-Statement' = Ein passendes SQL-Statement für (3a)

Ein kleiner Hinweis 1:
Du kannst deine Lösung flexibel hinsichtlich der Datenhaltung machen, indem du das Folgende machst:
4 - Eine Tabelle Mitarbeiter mit den Feldern ID und Name
5 - Eine Tabelle Vorgesetzter mit den Feldern ID und Name
6 - Eine Link-Tabelle für die Tabellen Mitarbeiter und Vorgesetzter mit den beiden Feldern ID_MA und ID_VG

Noch ein kleiner Hinweis 2:
Grundsätzlich kannst du die Listbox aus (1) ebenfalls als ein Visforms Feld vom Typ 'Listbox Sql' haben, welches in analoger Weise alle Mitarbeiter mit dem hinterlegten SQL-Statement aus (einer) der neuen Tabelle(n) holt.

Und noch ein kleiner Hinweis 3:
Grundsätzlich kannst du derartige Hilfstabellen auch mit Visforms Formularen erzeugen und bearbeiten.
7 a - Formular 'Mitarbeiter'
7 b - Formular 'Vorgesetzter'
7 c - Formular 'MA_zu_VG' oder alternativ ein Feld 'Vorgesetzter' in (7a)

Und dann noch ein kleiner Hinweis 4:
Bei den Formularen und ihren Datentabellen aus (7a) und (7b) kannst du in den Formularen - wenn du nun schon so weit gekommen bist - selbstverständlich auch noch weitere zusätzliche Informationen zu den Personen mit aufnehmen und speichern ... etwa die Abteilung oder das Team für die der Vorgesetzte zuständig ist.

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 :-).
Last edit: 2 years 9 months ago by Administrator IV.

More
2 years 9 months ago #7897 by fap
Replied by fap on topic Datensatz ein weiteres Feld mitgeben
Hallo Ingmar,

zunächst erstmal ein riesengroßes Dankeschön!
Ich kenne kaum eine Firma im IT-Umfeld was einen solchen After-Sales-Support bietet wie ihr! Top!

Leider komme ich nicht weiter, ich habe mit phpmyadmin eine Tabelle Mitarbeiter-Vorgesetzte erstellt und eine Listbox_sql erstellt.

Die Tabelle sieht so aus: de.share-your-photo.com/img/2f0e1e2bff.png

Meine Feldkonfiguration sieht so aus: share-your-photo.com/img/8a3fbbbd6f.png

Min SQL-Statement in der Listbox_SQL lautet:
Code:
SELECT `vorgesetzter` as value, `vorgesetzter` as label FROM `cevqz_mitarbeiter-vorgesetzter` WHERE `mitarbeiter` = `${input:name[]}`

Ich bekomme die Fehlermeldung
Code:
Unknown column '' in 'where clause'


Würdest du mir nocheinmal auf die Sprünge helfen?

Vielen Dank und viele Grüße

More
2 years 9 months ago #7899 by fap
Replied by fap on topic Datensatz ein weiteres Feld mitgeben
Hallo zusammen,
als Ergänzung noch:

Die Feldkonfiguration der SQL-Listbox "Vorgesetzter" sieht so aus: share-your-photo.com/img/4bcdbb808b.png

Wenn ich Frontend einen Mitarbeiter aus der Listbox auswähle, bleibt im Feld "Vorgesetzter" der "Bitte Wählen-Text" stehen. Ich kann das Formular zwar absenden aber im Feld "Vorgesetzter" wird kein Name übernommen.

Über einen Tipp würde ich mich sehr freuen

Vielen Dank und viele Grüße

More
2 years 9 months ago #7900 by Administrator IV
Replied by Administrator IV on topic Datensatz ein weiteres Feld mitgeben
Hallo fap,

vielen herzlichen Dank für dein Lob, das mich selbstverständlich sehr freut!

Dein SQL-Statement kann wie folgt lauten:

SELECT vorgesetzter as value, vorgesetzter as label FROM cevqz_mitarbeiter-vorgesetzter WHERE mitarbeiter in ${input:name[]}

Punkt 1:
Anführungszeichen (Single und Double) werden um Strings herum verwendet.
Backticks können um Tabellen- und Spaltenbezeichner herum verwendet werden - es ist aber nicht zwingend erforderlich.
Die Verwendung von Backticks ermöglicht es aber, alternative Zeichen und auch reservierte Schlüsselwörter zu verwenden.
Du kannst also mit ihnen beim Entwerfen deiner Tabelle einen beliebigen Feldnamen verwenden:
`my name`, `another field` , `field,with,comma`, `sort`, `select`, ...

Punkt 2:
Zitat aus der Dokumentation:
Wenn Sie in Ihrem SQL-Statement einen Platzhalter für einen solchen Parameter verwenden wollen, so müssen Sie eine spezielle Formateingabe beachten: ${input:fieldname[]}.
Visforms konvertiert dann automatisch alle Werte dieses Parameters in einen String, so dass sie in der mysql in() Funktion verwendet werden können.
Beispiel: Der Input Parameter select[]=value1 select[]=value2 wird zu ("value1","value2") konvertiert und kann folgendermaßen direkt in einer SQL Where Bedingung verwendet werden: where dbfieldname in ${input:select[]}

Gruß und weiterhin viel Erfolg, 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 :-).

More
2 years 9 months ago #7901 by fap
Replied by fap on topic Datensatz ein weiteres Feld mitgeben
Hallo Ingmar,

ohne Lobhudelei betreiben zu wollen, das erlebe ich nicht bei vielen Firmen nicht so wie hier.

Die Dokumentation unter www.vi-solutions.de/de/support/dokumenta...r-mit-optionenlisten
hatte ich gelesen und mich auch daran orientiert.

Ich habe den Namen der Tabelle jetzt zu vorgesetzter_mitarbeiter geändert. (Das minus-Zeichen zwischen den beiden Worten gegen einen Unterstrich ausgetauscht, vergleichbar wie bei vielen anderen Joomla-Tabellen)

Das SQL-Statement habe ich wie empfohlen auf
Code:
SELECT vorgesetzter as value, vorgesetzter as label FROM cevqz_mitarbeiter_vorgesetzter WHERE mitarbeiter in ${input:name[]}
geändert

Ich bekomme die Fehlermeldung
Code:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1

Welchen Fehler mache ich noch?


Vielen Dank und viele Grüße

Moderators: Administrator AVAdministrator IV
Powered by Kunena Forum