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.

Defaultwert SQL-Statement

Mehr
1 Jahr 6 Monate her - 1 Jahr 6 Monate her #8431 von sven.marx
Defaultwert SQL-Statement wurde erstellt von sven.marx
Hallo, ich nutze schon Listbox SQL sehr erfolgreich. Jetzt habe ich gesehen, dass beim Feldtyp Text, man das Feld füllen kann mit "Wert aus individuellem SQL-Statement".
Leider bekomme ich beim Testen immer ein error wenn ich im "Defalutwert SQL-Statement" die SQL-Abfrage eingebe.
Hier ein Beispiel:
select Firma from Maerkte_Gas WHERE Ort = 'Fürth, Bay, Erlanger Str.'
Ziel ist es aus einer Listbox SQL den Wert für die WHERE-Abfrage zu nutzen, z.B.
select Firma as value, Firma as label from Maerkte_Gas WHERE Ort in ${input:ort}

Es wäre super wenn jemand eine Idee hätte, warum generell die SQL-Abfrage für das Feld füllen nicht klappt!
Letzte Änderung: 1 Jahr 6 Monate her von sven.marx.

Mehr
1 Jahr 6 Monate her - 1 Jahr 6 Monate her #8434 von Administrator IV
Administrator IV antwortete auf Defaultwert SQL-Statement
Hallo sven.marx,

das SQL-Statement für den Default-Wert eines Feldes klappt nicht mit Feld-Werten.
Daher bleibt das Ergebnis des SQL-Statements bei dir immer leer.

Für das Setzen von Default-Werten über ein SQL-Statement werden zwar Platzhalter ausgewertet (Parameter des User-Objekts und Input-Objekts sind möglich), aber es stehen unmittelbar nach der Anzeige des Formulars keine Feld-Werte zur Verfügung.
Und wenn Feldwerte sich ändern, wird die Neuauswertung des SQL-Statements bei den Default-Werten gewollt nicht erneut angestoßen.
Es handelt sich ja um einen einmaligen Vorgang für die Erstanzeige des Formulars.

Du kannst es aber auf einem anderen Weg erreichen.
Ein funktionierendes Beispiel zeige ich im Folgenden.

Beispiel mit 3 Feldern unter der Zwischenüberschrift 'Example of SQL based dynamic Text rendering:'

Screenshot Formular vor der Auswahl:
vi-solutions.de/forum-uploads/sql-based-...before-selection.png

Screenshot Formular nach der Auswahl:
vi-solutions.de/forum-uploads/sql-based-...-after-selection.png

Feld 'sql2-select':
Eine ganz normales SQL-Listbox Feld zur Auswahl eines Ortes, die aus der Hilfstabelle ermittelt werden.
Die aktuelle Auswahl wird durch einen Platzhalter im SQL-Statement im Feld 'text2-sql-default' ausgewertet.
Es hat zusätzlich einen benutzerdefinierten Text bekommen, der die Überschrift 'Example of SQL based dynamic Text rendering:' liefert.
Der benutzerdefinierte Text wurde als 'darüber stehend' konfiguriert.
Der benutzerdefinierte Text wird ebenfalls leicht manipuliert (siehe unten), damit er die Bootstrap 5 Klasse 'fw-bold' bekommt und in Fettschrift erscheint.
Das Feld-Label hat auf dem Reiter 'Erweitert' in der Option 'CSS Class For Label' den Wert 'fw-bold' (eine Bootstrap 5 Klasse für Texte) gesetzt.
Screenshot: vi-solutions.de/forum-uploads/sql-based-...-sql2-select_sql.png

Feld 'text2-sql-default':
Ein Textfeld mit Default-Wert aus einem SQL-Statement als Beispiel.
In diesem SQL-Statement sind nur feste Werte und Parameter des User-Objekts und Input-Objekts möglich.
Platzhalter für Feld-Werte sind nicht möglich.
In diesem Fall bleibt das Feld immer leer.
Screenshot: vi-solutions.de/forum-uploads/sql-based-...-sql-default_sql.png

Feld 'sql2-sql-default':
Ein leicht manipuliertes SQL-Listbox Feld zur reinen Text-Anzeige der passenden Firma nach Auswahl des Ortes in Feld 'sql2-select'.
Damit es nicht wie eine Listbox aussieht wurden schwarzer Rahmen und schwarzer Auswahlpfeil entfernt, die gesamte Listbox 'disabled' und die in Folge dessen hellgraue Schrift durch die normale Anzeigefarbe ersetzt.
Screenshot: vi-solutions.de/forum-uploads/sql-based-...-sql-default_sql.png

Die ganze Manipulation erfolgt mittels etwas JavaScript, das mittels PHP in das Visforms Template eingefügt wurde.
Es ist also ein Visforms Template-Override:
Das Original default.php: components/com_visforms/tmpl/visforms/default.php
kopiert nach (wird zum 'Override'): templates/cassiopeia/html/com_visforms/visforms/default.php
und anschließend geändert: folgendes PHP ziemlich weit oben einfach eingefügt.

Hier der PHP-Schnipsel mit dem eigentlichen JavaScript zur leichten Manipulation des Feldes 'sql2-sql-default' mit der Feld-ID 191:
Code:
?><script>     jQuery(document).ready(function() {         $('#field191').attr("disabled", true);         $('#field191').attr("style", "appearance: none; color: initial !important; border: none;");         $('.field190 > .visCustomText > p').addClass("fw-bold");     }); </script><?php

SQL-Statement zur Erzeugung der Hilfs-Tabelle:
Code:
create table Maerkte_Gas (     id int auto_increment,     Firma text null,     Ort text null,     constraint Maerkte_Gas_pk         primary key (id) );

SQL-Statement zur Befüllung der Hilfs-Tabelle:
Code:
INSERT INTO Maerkte_Gas (Firma, Ort) VALUES ('Firma A', 'Ort A'), ('Firma B', 'Ort B'), ('Firma C', 'Ort C'), ('Firma D', 'Ort D'), ('Firma E', 'Ort E');

Liebe Grüße, 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: 1 Jahr 6 Monate her von Administrator IV.

Mehr
1 Jahr 6 Monate her #8435 von sven.marx
sven.marx antwortete auf Defaultwert SQL-Statement
Hallo Ingmar, erstmal vielen vielen Dank für das coole Beispiel und die ausführliche Beschreibung. Mir ist aber wichtig, dass ich das Textfeld mit dem Defaultwert auch berabeiten/überschreiben kann.
Kann ein Input-Objekt nicht ein Wert aus einem vorherigen Feld sein?

LG Sven

Mehr
1 Jahr 6 Monate her #8451 von Administrator IV
Administrator IV antwortete auf Defaultwert SQL-Statement
Hallo Sven,

ich fürchte an dieser Stelle kommen wir leider nicht mehr weiter.

Die Feld Option 'Gleicher Wert wie' ist eine reine Validierung.

Zitat:
Sie können mit der Formular-Validierung prüfen lassen, dass zwei Felder denselben Wert enthalten, indem Sie aus der Feld-Liste das Feld auswählen, dessen eingegebener Wert dem Wert in diesem Feld entspricht. Die Feldliste ist leer, wenn Sie das Feld neu angelegt und noch nicht gespeichert haben oder wenn Sie den Feldtyp geändert und die Änderung noch nicht gespeichert haben. Es werden nur Felder in der Liste angezeigt, die denselben Feldtyp haben wie dieses Feld. Um die Validierung durchzuführen reicht es aus, diese Validierungs-Option im einem der beiden betroffenen Feld zu setzen.

Nur Berechnungs-Felder können einen Wert aus einem vorherigen Feld sein.
Und das wiederum können ausschließlich Zahlenwerte sein.

Textfeld und Textarea können leider nicht mit SQL dynamisch gefüllt werden.
Dafür haben wir allerdings bereits ein neues SQL-Feature auf der Visforms Feature-Liste stehen.
Unklar ist, wann wir es implementieren können.

Das neue SQL-Feature ist durch diesen Post entstanden:
www.vi-solutions.de/de/support/forum/19-...tions-in-form-2#8355

Würde dir ein Textfeld oder eine Textarea, die mit SQL dynamisch gefüllt werden können denn weiterhelfen?

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 :-).

Moderatoren: Administrator AVAdministrator IV
Powered by Kunena Forum