Controller - ein einfaches Rechenbeispiel

Hallo @hoppler‍,

zuerst einmal zu der weißen Seite:
Du rufst über den von dir gewählten Weg die URL: meinShop,de/meinController/add auf.
In diesem Fall erwartet Shopware eine Datei namens add.tpl, anlehnend an den Namen deiner Action, im Theme-Ordner „mein_controller“.
Da du diese Datei wohl nicht besitzt, bekommst du eine weiße Seite.

Du hast nun im Prinzip zwei Möglichkeiten:

  1. Du legst eine add.tpl in dem o.g. Ordner an und leitest diesen von deiner index.tpl ab - dort bekommst du dann das Ergebnis angezeigt. Dies bedeutet aber immer einen Reload der Seite und ist eher semi-schön.

  2. Du baust das Ganze nicht mit einem HTML-Form, welches, wie im Punkt 1 genannt, eine neue Seite öffnet beim Ausführen des Formulars, sondern mit einem sogenannten AJAX-Request. 
    Dabei kann dir durchaus jQuery behilflich sein.
    In diesem Fall sendest du deinen AJAX-Request ebenfalls an deine addAction, müsstest in der AddAction jedoch folgende Zeile ergänzen:

    $this->container->get(‚front‘)->Plugins()->ViewRenderer()->setNoRender();

Diese Zeile sorgt dafür, dass deine Action kein eigenes Template zu laden versucht.
Dadurch würde aber auch die Zeile „$view->assign()…“ an Sinn verlieren.
Hier könntest du am Einfachsten (es gibt auch elegantere Wege) eben dein Ergebnis per PHP-Funktion json_encode() JSON enkodieren und dann per bspw. „echo“ ausgeben, sodass der AJAX-Request die Response verarbeiten kann.

Bin leider gerade etwas im Zeitdruck um dazu mehr ins Detail zu gehen, aber die Grundidee hilft dir ggf. schon mit ein bisschen Nachforschung.
Alternativ schaue ich morgen nochmal drüber und versuche das Ganze mit konkreten Beispielen zu schmücken.

Lieben Gruß,
Patrick  Shopware