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.

. Feldtyp selectsql mit Formularfeld steuern

Mehr
2 Jahre 2 Wochen her #8048 von gedo
Ich habe ein Testformular erstellt, wobei das erste ein Feld vom Typ radio ist, und die Wert/Vaules mit varchar befüllt ist und die Bezeichnung ebenfalls.Im zweiten Feld vom Typ selectsql möchte ich nun in der Where-Klausel (F5 in {${input:fieldname[]}) verwenden.Das erste Feld hat den namen „Rasse“ alias „rasse“ und die ID 501.Egal welche Schreibweise ich verwende {${input:Rasse[]} oder {${input:rasse[]} oder {${input:501[]} funktioniert die Abfrage nicht. Wobei der Test mit  F5 in („xxxx“) funktioniert.

Was schreibe ich falsch? bzw. kann man auch die Bedingung = verwenden?

Mehr
2 Jahre 2 Wochen her - 2 Jahre 2 Wochen her #8050 von MaliRaj
Hallo gedo,
1. dein erstes Feld 'rasse' (Typ: radio) erzeugt vermutlich kein Array. Daher wäre wohl die richtige Schreibweise:
Code:
${input:rasse}

2. Dein komplettes SQL-Statement wäre hilfreich zum erkennen weiterer möglicher Klammerfehler {}

3. Der "Test"-Button in der Feldkonfiguration deines selectsql-Feldes wird immer einen Fehler ergeben, da die Variable 'rasse' erst zur Laufzeit des Formulares gültig (vorhanden) ist.

Freundliche Grüße aus PM
Heinz
Letzte Änderung: 2 Jahre 2 Wochen her von MaliRaj.
Folgende Benutzer bedankten sich: Administrator AV

Mehr
2 Jahre 2 Wochen her #8053 von Administrator AV
Administrator AV antwortete auf . Feldtyp selectsql mit Formularfeld steuern
Hallo gedo,

der Hinweis von MaliRaj ist korrekt.

Die [] kannst du sogar auch weg lassen, wenn du einen Platzhalter für ein Feld vom Typ Select/Selectsql verwendest.
Die Dokumenation wird entsprechend angepasst werden.

Darüber hinaus fällt auf, dass du in allen 4 Beispielen am Anfang eine { hast.
Diese ist falsch erzeugt auf jeden Fall einen Fehler.
{${input:rasse[]}

Da der Wert eine Feldes vom Typ Radio einfach ein "String" ist, kannst du in diesem Fall in der where-Klausel auch mit "=" statt "in" arbeiten.

Gruß,
Aicha

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

Mehr
2 Jahre 2 Wochen her - 2 Jahre 2 Wochen her #8054 von gedo
Danke Für die Tipps!

Wie gesagt wenn ich  in der Klausel in "xxxx" schreibe hat die komplette SQL korrekt funktioniert.

Habe mir als Info das ${input:feldname} (da radio ohne ) im Label eingebunden.
interessant das beim Formularaufruf eine 0 für das Ergebnis angezeit wurde, jedoch beim Wechsel der Auswahl kam nicht der TEXT-string sondern nicht (nehme an NULL).

Daraufhin im radio-Feld nur int-Werte verwendet und im abhängigen SQL-Feld mit CASE/WHENN wieder in den entsprechenden TEXT konvertiert - SO FUNKT ES !!

select id as value, CONCAT(F1," - ",F5," - ",F16) as label 
FROM new_visforms_1
WHERE (F5 > DATE_ADD(SYSDATE(), INTERVAL -91 DAY) and F4 like (CASE
WHEN ${input:rasse} IS NULL THEN "%"
WHEN ${input:rasse} = 0 THEN "%"
WHEN ${input:rasse} = 1 THEN "Bichon Fris%"
WHEN ${input:rasse} = 2 THEN "Bologneser"
WHEN ${input:rasse} = 3 THEN "Cavalier King Charles Spaniel"
WHEN ${input:rasse} = 4 THEN "Japan Chin"
WHEN ${input:rasse} = 5 THEN "Chinese Crested Dog"
WHEN ${input:rasse} = 6 THEN "Coton De Tul%"
WHEN ${input:rasse} = 7 THEN "King Charles Spaniel"
WHEN ${input:rasse} = 8 THEN "Malteser"
WHEN ${input:rasse} = 9 THEN "Papillon"
WHEN ${input:rasse} = 10 THEN "Pekingese"
WHEN ${input:rasse} = 11 THEN "Phalene"
WHEN ${input:rasse} = 12 THEN "Shih Tzu"
ELSE "%"
END)) order by F5 asc
 
Letzte Änderung: 2 Jahre 2 Wochen her von gedo.

Mehr
2 Jahre 2 Wochen her - 2 Jahre 2 Wochen her #8060 von MaliRaj
Hallo gedo, dass es nun wie gewünscht "funkt" ist gut. Ich habe mich gefragt, warum dein SQL-Statement (für mich) so umständlich aufgebläht ist und warum du das wohl so gelöst hast. Ich kenne natürlich mangels Information deine genaue Anforderung nicht. Aber so wie ich das erkenne/vermute, willst du mit Feld 2  alle Datensätze mit einer bestimmten Rasse ermitteln, die du in Feld 1 zur Auswahl anbietest. Oder? Wenn das so ist, warum so umständlich über Zahlenwerte und schwer wartbarer SQL-Abfrage. Du könntest das Feld 1 selbst als SQL-Auswahlliste (alle Rassen aus deiner Tabelle) konfigurieren und dann im Feld 2 mit einer stark vereinfachten SQL-Abfrage nach Feld 1 filtern. Der Vorteil dabei wäre, dass sich auch bei neu hinzugefügten Rassen, die Auswahl im Feld 1 dynamisch anpasst und am SQL-Statement nichts geändert werden muss.
Hoffentlich ist das jetzt nicht mehr Verwirrung als Hilfe.

Freundliche Grüße aus PM
Heinz
Letzte Änderung: 2 Jahre 2 Wochen her von MaliRaj.

Moderatoren: Administrator AVAdministrator IV
Powered by Kunena Forum