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.

Nachladen ..

More
1 month 4 days ago #10482 by prffrost
Nachladen .. was created by prffrost
da das laden oder bedingte anzeigen des Feldes so nich möglich ist blende Ich es mit einem Script aus ...
das funktioniert auch soweit ganz gut ..

aber was es nicht macht ist es nach auswahl einer selectsql anzeigen ...

vielleich hat jemand eine Idee wie Ich es schaffe das der Wert nachlädt und das Feld ID 9401 anzeigt
Code:
document.addEventListener("DOMContentLoaded", function() {     console.log('Script loaded');     const fieldsToHide = ['9401', '23', '24', '25', '26']; // IDs der Felder, die standardmäßig ausgeblendet werden     const fieldToShowId = '9360'; // ID des Felds, dessen Wert überprüft wird, um das andere Feld einzublenden     // Funktion zum Ausblenden eines Felds     const hideField = function(fieldId) {         const elementToHide = document.getElementById('field' + fieldId);         const labelToHide = document.querySelector(`label[for='field${fieldId}']`);         if (elementToHide) {             elementToHide.style.display = 'none';             console.log(`Element with ID field${fieldId} successfully hidden.`);         } else {             console.log(`Element with ID field${fieldId} not found.`);         }         if (labelToHide) {             labelToHide.style.display = 'none';             console.log(`Label for element with ID field${fieldId} successfully hidden.`);         } else {             console.log(`Label for element with ID field${fieldId} not found.`);         }     };     // Funktion zum Einblenden eines Felds     const showField = function(fieldId) {         const elementToShow = document.getElementById('field' + fieldId);         const labelToShow = document.querySelector(`label[for='field${fieldId}']`);         if (elementToShow) {             elementToShow.style.display = ''; // Zeigt das Element wieder an (nutzt standardmäßig display: block oder inline)             console.log(`Element with ID field${fieldId} successfully shown.`);         } else {             console.log(`Element with ID field${fieldId} not found.`);         }         if (labelToShow) {             labelToShow.style.display = ''; // Zeigt das Label wieder an             console.log(`Label for element with ID field${fieldId} successfully shown.`);         } else {             console.log(`Label for element with ID field${fieldId} not found.`);         }     };     // Initial Felder ausblenden     fieldsToHide.forEach(function(fieldId) {         hideField(fieldId);     });     // Event Listener für Änderungen im Feld mit der ID 9360 hinzufügen     const field9360 = document.getElementById('field9360');     if (field9360) {         field9360.addEventListener('change', function() {             const selectedValue = field9360.value.trim();             if (selectedValue === 'SAR 800') {                 fieldsToHide.forEach(function(fieldId) {                     showField(fieldId);                 });             } else {                 fieldsToHide.forEach(function(fieldId) {                     hideField(fieldId);                 });             }         });     } else {         console.log('Field with ID 9360 not found.');     }     // Event Listener für Nachladen von Elementen     document.addEventListener('visformsAfterLoadElement', function(event) {         const loadedFieldId = event.detail.fieldId;         if (loadedFieldId === fieldToShowId || fieldsToHide.includes(loadedFieldId)) {             // Hier wird die Sichtbarkeit der entsprechenden Felder neu geprüft             const selectedValue = field9360.value.trim(); // Wert des Trigger-Felds erneut prüfen             if (selectedValue === 'SAR 800') {                 fieldsToHide.forEach(function(fieldId) {                     showField(fieldId);                 });             } else {                 fieldsToHide.forEach(function(fieldId) {                     hideField(fieldId);                 });             }         }     }); });


 

More
3 weeks 3 days ago - 3 weeks 3 days ago #10504 by Administrator IV
Replied by Administrator IV on topic Nachladen ..
Hallo Wolfgang,

ohne jetzt auf die Details deiner Anwendung einzugehen, hier kurz die Beschreibung der Situation seitens Visforms.

Definition:
- SQL-Feld = Lädt Daten via SQL dynamisch nach und kann durch die Änderung des Wertes von Trigger-Feldern dazu gebracht werden.
- Trigger-Feld = Stößt bei Änderung seines Wertes ein Nachladen von SQL-Feldern an.

Für das Nachladen der SQL-Felder sind zwei Events beteiligt: 'reloadsqloptions' und 'change'.

Event 'reloadsqloptions':
Wird nur zum Anstoß der ersten Initialisierung eines SQL-Feldes vom SQL-Feld einmalig gefeuert.
Ist für dich hier also nicht relevant.

Event 'change':
Wird von Trigger-Feld und SQL-Feld gefeuert.
- Trigger-Feld feuert: nach Änderung seines Wertes.
Der Handler kümmert sich um das Nachladen des SQL-Feldes.
- SQL-Feld feuert: nach dem Abschluss seines Nachladens.

Allein durch die Nutzung des Events 'change' kannst du daher:
- Auf Änderungen von SQL-Feld und Trigger-Feld reagieren (auf gefeuertes Event reagieren).
- Das Nachladen eines SQL-Feldes anstoßen (das Event auf eines seiner Trigger-Feld senden).

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 :-).
Last edit: 3 weeks 3 days ago by Administrator IV.

More
3 weeks 3 days ago #10505 by prffrost
Replied by prffrost on topic Nachladen ..
habe es schon gelöst ..

gruß Wolfgang

More
3 weeks 3 days ago #10506 by Administrator IV
Replied by Administrator IV on topic Nachladen ..
Hallo Wolfgang,

noch ein grundsätzlicher Hinweis, der für dich wichtig werden könnte.

Wenn du für deine Initialisierung auf das JavaScript Event 'DOMContentLoaded' reagierst, ist das Dokument vollständig geladen seitens des Web-Broweser.
Das Formular ist zu diesem Zeitpunkt aber noch nicht seitens Visforms initialisiert, diese startet dann erst.
Das ist für viele Situationen ausreichend.

Wenn du aber deine Initialisierung erst nach der Initialisierung von Visforms ablaufen lassen möchtest, musst du ein Visforms Event verwenden.
Das ist etwa notwendig, wenn du Werte in Felder setzen oder verändern möchtest.

Es gibt dazu ein Beispiel in der Dokumentation.
Das Alter aufgrund des Geburtsdatums berechnen und anzeigen:
docs.joomla-5.visforms.vi-solutions.de/d...rechnen-und-anzeigen

Zitat:
Themen: Code erst dann ablaufen lassen, nachdem das Formular seitens Visforms initialisiert wurde.
Code:
jQuery('.visform').bind('visformsInitialised', function() {     // called after form is initialized     ... });

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 :-).
The following user(s) said Thank You: prffrost

Moderators: Administrator AVAdministrator IV
Powered by Kunena Forum