[webform]: Vorausfüllung der Formularfelder mittels referenzierter Node
am 14.06.2024 - 11:07 Uhr in
Hallo,
ich hab ein Formular, das soll vorausgefüllt werden mit Werten, die in einer Node definiert werden.
In einem Formularfeld wähle ich den Titel dieser Node aus (Typ: Entity autocomplete).
In anderen Feldern (Typ: Entity checkboxes) sollen dann nach der Eingabe des Titels bereits Werte angeklickt sein, die eben im entsprechenden Feld in der referenzierten Node angeklickt sind.
Jetzt stehe ich vor der Herausforderung: Wie löse ich diese Quadratur des Kreises?
Habe versucht über "Standardwert" die Vorausfüllung zu regeln, indem ich Tokens anspreche: z.B.: [webform_submission:values:FELDSCHLUESSEL:entity:id]
Damit müsste ich ja die ID der referenzierten Node erhalten und auch die Verbindung zur Node herstellen, oder?
Aber das klappt nicht. Die Tokens werden zwar angeboten, aber gar nicht verwendet/ausgewertet.
Wie kann ich diese Verknüpfung denn herstellen? Geht das überhaupt?
Auf die Idee mit den Tokens, kam ich durch folgenden Beitrag: https://www.drupal.org/forum/support/post-installation/2021-02-03/access...
Auch wenn er zu Drupal 9 ist, müsste das in Drupal 10 ja ähnlich sein, oder nicht?
Nutze aktuell folgendes System:
Drupal 10.2.4
PHP 8.2.20
Webform: 6.2.2
- Anmelden oder Registrieren um Kommentare zu schreiben
Dein Problem liegt daran, daß
am 14.06.2024 - 15:23 Uhr
Dein Problem liegt daran, daß die abhängigen Felder erst nach Deiner Auswahl des Titels gesetzt werden können. Das geht über ein Nachladen im Hintergrund über AJAX. Da wird dann eine von Dir zuschreibende Funktion aufgerufen, die aus der Node-ID der gewählten Node die übrigen Werte ermittelt und an den Browser liefert zur Anzeige im Formular. Machbar, aber nicht trivial.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Vielen Dank für den
am 02.07.2024 - 10:25 Uhr
Vielen Dank für den Hinweis.
Haben nun ausführlich im Team drüber gesprochen und dann entschieden, es doch besser so zu belassen, weil es klingt einfach zu aufwendig.