Über AJAX geladenes Schwerkraftformular wird nicht gesendet

Lesezeit: 2 Minuten

Benutzeravatar von laudx
laudx

Ich habe ein Schwerkraftformular, das von einer AJAX-Funktion geladen wird. Wenn ich versuche, das Formular abzusenden, erhalte ich aus irgendeinem Grund eine 400 error /wp-admin/admin-ajax.php#gf_3:1

Folgende Anleitungen online habe ich hinzugefügt gravity_form_enqueue_scripts(3, true); zu meinem header.php was das Problem nicht gelöst hat.

Das Formular funktioniert auf der Vorschauseite einwandfrei. Ich habe mehrere Formulare und mehrere Funktionen getestet, aber keines meiner Formulare wird gesendet, wenn sie über AJAX geladen wurden.

Ich verbrachte viele Stunden mit diesem Problem. Ich verwende Gravity Forms 2.5.1

Es stellt sich heraus, dass das `DOMContentLoaded’-Ereignis, das mit dem Formular geladen wird, nicht ausgelöst wurde.

In meiner Funktion, die das Formular aufruft, habe ich das Ereignis manuell ausgelöst und jetzt funktioniert es wie erwartet.

    window.document.dispatchEvent(new Event("DOMContentLoaded", { bubbles: true, cancelable: true }));```

  • Warum passiert das, sollte es GF gemeldet werden?

    – Klaudio Milankovic

    23. August 2021 um 9:40 Uhr

  • developer.mozilla.org/en-US/docs/Web/API/Document/… — Es wird nur beim anfänglichen HTM-Laden ausgelöst, also hat GF angenommen, dass es ausgelöst wird, wenn dies nicht der Fall ist ( immer ) … Ich nehme an, es sollte GF gemeldet werden, gute Idee

    – Squivo

    24. August 2021 um 17:34 Uhr

Ich habe das gleiche Problem und bin hier auf deine Frage gestoßen. Ich lade verschiedene Formulare auf derselben Seite über Ajax und ich glaube, ich habe die Lösung gefunden.

Sie müssen ajax.url lokalisieren

wp_localize_script( 'change-this-to-your-theme-handle', 'ajax', array(
    'url' => admin_url( 'admin-ajax.php' )
));

Sieht so aus, als würde GF danach suchen, wenn das Formular mit Ajax geladen ist. Ich denke, sie gehen einfach davon aus, dass Sie GF mit Ajax geladen haben, das Sie verwenden ajax.url. Stattdessen habe ich mein eigenes Objekt verwendet, um Dinge zu lokalisieren, was Sie wahrscheinlich auch getan haben.

  • Hallo Klaudio, ich verstehe deine Meinung nicht mit “Ändere-das-in-Dein-Theme-Handle”! Woher ich bitte weiß, was mein Theme-Handle ist?!

    – thống nguyễn

    29. Juli 2021 um 4:40 Uhr

  • Ihr Design-Handle ist das, was Sie zum Registrieren eines anderen Skripts verwendet haben. Wenn Sie beispielsweise ein Skript in die Warteschlange einreihen, ist der zweite Parameter in dieser Funktion das Handle. Schau es dir hier an developer.wordpress.org/reference/functions/wp_localize_script Scrollen Sie nach unten zu den Kommentaren, um den Democode anzuzeigen.

    – Klaudio Milankovic

    12. August 2021 um 12:14 Uhr

1426520cookie-checkÜber AJAX geladenes Schwerkraftformular wird nicht gesendet

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy