✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Vollständiger Leitfaden: So füllen Sie Felder in Schwerkraftformularen dynamisch aus

21

Das Erstellen einfacher oder komplexer Formulare in Gravity Forms ist einfach und schnell. Eine der Funktionen, die Gravity Forms bietet, ermöglicht es Ihnen, Felder in einem Formular bedingt vorab auszuwählen oder auszufüllen. Dies ist nützlich, wenn Sie dasselbe Formular auf mehreren Kontaktseiten für jede Abteilung haben und die entsprechende Abteilung im Formular vorab auswählen möchten. Oder Sie betten ein Anfrageformular auf Produkt- oder Serviceseiten ein und möchten bei jeder Einreichung automatisch Informationen über das aktuelle Produkt oder die aktuelle Dienstleistung vorausfüllen.

Sie können Felder auf verschiedene Arten dynamisch vorab auswählen oder ausfüllen, und Sie können auch die möglichen Auswahlmöglichkeiten in einer Dropdown-, Optionsfeld- oder Kontrollkästchengruppe dynamisch ersetzen. Das Feld, das Sie dynamisch ausfüllen, kann ein sichtbares Feld sein, das der Benutzer bearbeiten kann, oder es kann in ein verborgenes Feld geleitet werden, damit der Leser der Formulareinsendungen wichtige Informationen erhält.

Die vier Möglichkeiten zum dynamischen Ausfüllen von Feldern

In diesem Leitfaden sehen wir uns vier Möglichkeiten zum dynamischen Ausfüllen von Feldern in einem Gravity Forms-Formular an. Drei davon können Sie ausführen, ohne einen Code zu berühren! Wenn Sie jedoch die möglichen Auswahlmöglichkeiten in einer Auswahl, Optionsfeldgruppe oder Kontrollkästchen dynamisch ändern möchten, müssen Sie etwas PHP-Code schreiben. Wie das geht, sehen wir uns ganz zum Schluss an.

Sie können Felder dynamisch füllen, indem Sie:

  • Hinzufügen zusätzlicher Informationen in der URL.
  • Geben Sie zusätzliche Informationen für den Gravity Forms-Einbettungs-Shortcode an.
  • Definieren zusätzlicher Informationen für den Gravity Forms Block (wenn Sie WordPress mit Gutenberg verwenden).
  • Verwenden von Filtern mit PHP-Code.

Aber zuerst müssen wir durchgehen, wie man die dynamische Befüllung eines Feldes aktiviert.

Aktivieren eines Felds, um eine dynamische Befüllung zu ermöglichen

Der erste Schritt, unabhängig davon, welche Methode Sie zum Ausfüllen des Felds verwenden, besteht darin, dies für das Feld selbst zu aktivieren.

Erweitern Sie in der Formularbearbeitung das Feld und in der Registerkarte „Erweitert” finden Sie ein Kontrollkästchen „Feld darf dynamisch ausgefüllt werden”. Wenn Sie dies deaktivieren, wird eine neue Texteingabe angezeigt, mit der Sie Ihren Parameternamen definieren können. Dies kann sein alles, was Sie wollen, aber einzigartig und ohne Leerzeichen sein sollten.

Vollständiger Leitfaden: So füllen Sie Felder in Schwerkraftformularen dynamisch aus

Speichern Sie das Formular und Sie können entscheiden, mit welcher Methode Sie es ausfüllen möchten.

Dynamisches Auffüllen aus URL-Parametern

Sie können GET-Parameter an den Link zu der Seite anhängen, die das Formular einbettet, z. B. wenn sich der Link in einem anderen Beitragstext befindet oder ein benutzerdefinierter Link in WordPress-Menüs ist.

Fügen Sie einfach Abfragevariablen in Schlüssel-Wert-Paaren hinzu, wobei der Parametername der Schlüssel ist und ihr Wert den gewünschten Wert hat. Es ist möglich, mehrere Schlüsselwertpaare hinzuzufügen, wenn Sie mehrere Felder im Formular ausfüllen möchten, trennen Sie einfach jedes Paar mit „&”.

Angenommen, Ihr Formular existiert auf dieser Seite: „ https://example.com/contact-me/“, und Ihr Parametername lautet awp_populate_me, Sie können das Feld mit dieser URL ausfüllen: „ https://example.com/contact-me/?awp_populate_me=Hello“.

Denken Sie daran, dass URLs richtig codiert sein müssen. Beispielsweise können Sie nicht einfach Leerzeichen oder Sonderzeichen direkt als Parameterwert hinzufügen. Bereitstellen von „Hallo Welt!” als Wert wäre „ Hello%20world%21“. Es gibt viele Online-Tools zum Codieren von URLs für Sie, wenn Sie diesen Weg gehen möchten.

Dynamisches Ausfüllen aus Shortcode

Alle Formulare werden über einen Shortcode eingefügt. Sie können Felder direkt in diesem Shortcode dynamisch ausfüllen. Diese Methode kann nützlich sein, wenn Sie dasselbe Formular in mehreren Beiträgen verwenden (z. B. Teilnehmer für mehrere verschiedene Veranstaltungen oder Kurse registrieren) und Sie etwas Einzigartiges angeben müssen, um zu wissen, von welcher Veranstaltung oder welchem ​​Kurs das Formular stammt ……

Wenn Sie ein Formular einbetten, führt dies normalerweise zu einem Shortcode, der in etwa so aussieht:[gravityforms id="1" title="Contact us"]

Bearbeiten Sie den Shortcode und fügen Sie den Schlüsselsatz field_valueszu einer Zeichenfolge hinzu, die Ihren Parameternamen gleich dem gewünschten Wert enthält. Das Setzen eines Parameters awp_populate_meauf „Hello World” erfolgt beispielsweise wie folgt:

[gravityforms id="1" title="Contact us" field_values="awp_populate_me=Hello World"]

Wenn Sie mehrere Felder ausfüllen müssen, fügen Sie ein „&” dazwischen ein, etwa so:

[gravityforms id="1" title="Contact us" field_values="awp_populate_me=Hello World&awp_another_field=Hello to you too"]

Dynamische Befüllung aus Block in Gutenberg

Wenn Sie GravityForms Version 2.4.13+ und WordPress mit Gutenberg (WordPress 5+) haben, können Sie Gravity Forms als Block hinzufügen. Innerhalb dieses Blocks haben Sie auch eine Methode zum Ausfüllen von Feldern.

Füge den Block „Formulare” in Gutenberg hinzu und wähle dein Formular aus. Der Block sollte sich in eine Formularvorschau ändern. Erweitern Sie im rechten Seitenbereich Erweitert, und Sie finden einen Textbereich mit der Bezeichnung „Feldwerte”. In dieses Textfeld können Sie Ihre Parameternamen und -werte eingeben, genau wie Sie den Shortcode eingeben würden. Bsp. „ awp_populate_me=Hello World!

Vollständiger Leitfaden: So füllen Sie Felder in Schwerkraftformularen dynamisch aus

Dynamisches Auffüllen aus Code

Und schließlich, wenn Sie Ihre Felder lieber mit PHP-Code füllen möchten, gibt es dafür Filter. Sie können diesen Code in die functions.php.

Wie Sie dies codieren, hängt davon ab, um welche Art von Feld es sich handelt; Wie Sie wahrscheinlich erraten können, muss das Auffüllen (Ersetzen aller Auswahlmöglichkeiten) in einer Auswahl anders behandelt werden als das Auffüllen eines einzelnen Textfelds.

Füllen eines Einzelwertfelds

Das Ausfüllen eines Felds mit einem einzelnen Wert (dies gilt für Textfelder, Textfelder, E-Mail-Felder, Telefonfelder und ähnliches) erfolgt einfach durch Filtern gform_field_value_<parameter name>. In unserem Beispiel:

add_filter('gform_field_value_awp_populate_me', function($value) { return 'Hello world!'; });

Sie können diesen Filter auch verwenden, um eine Option in einem Feld mit mehreren Werten vorab auszuwählen, z. B. Auswählen (Dropdown), Optionsfelder oder Kontrollkästchen.

Bestücken einer Auswahl- oder Optionsschaltfläche

Wenn Sie nur daran interessiert sind, eine Option vorab auszuwählen, befolgen Sie bitte die obige Anleitung zum Ausfüllen eines Einzelwertfelds. Dieser Code dient zum Anpassen oder Ersetzen der möglichen Auswahlmöglichkeiten, die Sie im Feld erhalten.

Die Formularrenderfilter von Gravity Forms

Der gform_pre_renderFilter ermöglicht es uns, das Formular zu ändern, bevor es angezeigt wird. Aber wenn wir hier Änderungen vornehmen, sollten wir sicherstellen, dass unsere Änderungen in allen Fällen angewendet werden; Daher müssen wir uns auch auf gform_admin_pre_render(entsprechender pre_render-Filter, wirkt sich aber auf die Verwaltung/Formularbearbeitung aus), gform_pre_validation(verantwortlich für die Validierung des Formulars vor dem Absenden) und gform_pre_submission_filter(Filter nach der Validierung, aber bevor der Eintrag gespeichert wird) einklinken. Keine Sorge, wir verwenden für all diese Filter ein und dieselbe Funktion.

Sie können diese direkt filtern, oder Sie können einen Unterstrich und die Formular-ID nach dem Filternamen angeben, um nur ein bestimmtes Formular zu filtern. B. gform_pre_render_1nur auf einem Formular mit der Formular-ID 1 ausgeführt werden.

Als Argument für all diese Filter erhalten Sie das Formularobjekt, in dem Sie die Formular-ID (alternative Methode zum Hinzufügen der Formular-ID beim Filter) und alle ihre Felder abrufen können. Die Formularfelder sind ein Array von FieldObjekten – aber wir müssen uns nur darum kümmern, die choicesEigenschaft des richtigen Felds zu ersetzen.

Auswahl ändern

Durch welche Art von Daten Sie die Auswahl ersetzen möchten, liegt ganz bei Ihnen, aber die choicesEigenschaft eines Felds benötigt ein Array mit den Elementen „Text” und „Wert”. Zum Beispiel ['text' => 'Hello World!', 'value' => '1', 'text' => 'Second choice', 'value' => '2'].

Der obige Code filtert nur die Formular-ID von 1. Er beginnt mit einer Schleife durch die Felder des Formulars. Es ist wichtig, das „&” vor dem Element in der Schleife zu beachten, das es als Referenz übergibt. Das bedeutet, wenn wir Änderungen an vornehmen $field, werden diese direkt auf die angewendet und gespeichert $form['fields'].

Der zweite Schritt zielt auf das Feld ab, das den Parameternamen enthält, auf den wir abzielen möchten. Für jedes Feld ist dies die inputNameEigenschaft. Sie können andere Methoden zum Targeting von Feldern verwenden, z. B. die ID (id) oder die CSS-Klasse (cssClass). Wenn wir unser Feld gefunden haben, müssen wir das Ersatzarray für die Auswahlmöglichkeiten generieren und $field->choicesdarauf setzen. Im obigen Beispiel frage ich alle Seiten ab und durchlaufe sie, um ein korrekt formatiertes Array zu generieren.

Vergessen Sie nicht, $formdas ganz am Ende zurückzugeben, da dies ein Filter ist.

Es ist erwähnenswert, dass dieser Filter auch für das Bearbeitungsformular gilt (weil wir filtern gform_admin_pre_render). Denken Sie jedoch daran, dass Sie die Auswahlmöglichkeiten in der Formularbearbeitung nicht mehr manipulieren können – Ihre Änderungen werden einfach nicht gespeichert, da dieser Code sie immer überschreibt.

Kontrollkästchen füllen

Ich werde es noch einmal erwähnen; Wenn Sie nur daran interessiert sind, ein Kontrollkästchen vorab auszuwählen, befolgen Sie bitte die obige Anleitung zum Ausfüllen eines Einzelwertfelds. Was das Ersetzen aller Auswahlmöglichkeiten in Kontrollkästchen betrifft, so ist der Vorgang dem Befüllen einer Auswahl- oder Optionsschaltfläche oben sehr ähnlich, jedoch mit einigen geringfügigen Unterschieden. Ich empfehle, zuerst die Erklärung oben für Auswahl- und Optionsschaltflächen zu lesen.

Sie verwenden dieselben Filter und der Startvorgang ist derselbe; Sie durchlaufen die Felder des Formulars und finden das gewünschte. Bei Checkboxen müssen Sie jedoch zwei Eigenschaften im Feldobjekt ersetzen; choicesund inputs. Die choicesEigenschaft erwartet das gleiche Array wie in einem Select- oder Radio-Button.

Die inputEigenschaft erwartet ein Array mit den Elementen ‘ label‘ und ‘ id‘. Das labelist selbsterklärend und sollte mit dem textArray in choice identisch sein. Das idElement muss den ID-Regeln von Gravity Forms folgen; Verketten Sie die Feld-ID, einen Punkt und die Auswahl-ID, beginnend mit 1 (z. B. wenn die Feld-ID 2 und die Auswahl-ID 3 ist, ist die richtige id2.3“).

Da Auswahl-IDs bei 1 beginnen müssen, starten wir eine Zählervariable vor der Schleife und addieren 1 für jedes Element in der Schleife und verwenden diese zusammen mit der Feld-ID und einem Punkt wie idin einem inputsArray.

Wenn wir unsere beiden Arrays haben, setzen wir sie auf die Eigenschaften und des Felds choicesund inputsgeben das modifizierte Formular zurück.

Aufnahmequelle: awhitepixel.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen