JSON-Response verarbeiten

Hallo,

ich möchte das Standard-Kontaktformular, in leicht abgewandelter Form, auf der Produktdetailseite einbinden. Dazu habe ich ein eigenes Twig-Template vom Standard entsprechend abgeleitet:

{% sw_extends '@Storefront/storefront/element/cms-element-form/form-types/contact-form.html.twig' %}

...

Nachdem das Formular gesendet wurde, möchte ich gern den zurückkommenden JsonResponse des Controllers frontend.form.contact.send in einem eigenen Feld, unter dem Formular anzeigen.

Wenn ich die Doku, Add Dynamic Content via AJAX Calls | Shopware Documentation, richtig verstanden habe, muss ich im Twig-Template ein div einbauen, wo per JavaScript die Erfolgsmeldung abgeholt wird? Wie müsste das konkret aussehen?

Viele Grüße, Frank

Es geht lediglich um die id des div. Diese musst du im JavaScript verwenden, damit JavaScript weiß, wo es den Inhalt hinzufügen soll.

Einfach noch einmal das Beispiel ansehen und dann auf die id achten.

Ich möchte den Standard-Controller verwenden. Der erzeugt die Ausschrift:

„Wir haben Ihre Kontaktanfrage erhalten und werden sie schnellstmöglich bearbeiten.“

Offenbar ist das ein Stück JavaScript aus dem Shopware Core. Würde mir so auch reichen.

Im Dev-Modus bekomme ich beim Senden aber den Fehler: „Warning: Undefined array key „mailReceiver““

Im Prod-Modus wird die Mail zwar korrekt gesendet, es geht aber nur ein Fenster mit dem JSON Inhalt auf:

[{"type":"success","alert":"Wir haben Ihre Kontaktanfrage erhalten und werden sie schnellstm\u00f6glich bearbeiten."}]

Das JavaScript, welches den Response verarbeiten soll, wird nicht aktiv. Was mache ich da falsch ?

Ich habe jetzt noch gesehen, dass bei dem Standard-Kontaktformular ein div namens cms-element-form drumherum ist.

Wenn ich das bei meinem Formular auch definiere ist die Fehlermeldung zwar weg, aber auf der Konsole steht ein Fehler und die Mail wird nicht versendet:

Fehlen da irgendwelche Attribute, oder woran kann das liegen?