Modul Controller render different View

Ist es moeglich in einem Modul Controller nach Bearbeitung des Requests auf den urspruenglichen Controller umzuleiten/zurueck zu springen?

Situation ist folgende:

  • Modal oeffnet sich auf der Listen Seite
  • Form Submit geht auf einen Modul Controller
  • Request wird bearbeitet
  • !! danach moechte ich wieder auf der Listen Seite landen

sowas ist schon möglich, man rendert aber nicht eine andere View, sondern schickt den Kunden zu dem entsprechenden Controller. Dafür muss man alle nötigen Parameter an index.php übertragen, damit der Benutzer wieder dort landet, wo er hergekommen ist.
Aber weil es kompliziert ist und wegen UX macht man solche Sachen normalerweise über AJAX ohne den Kunden durch andere Controller zu schicken.

Kannst du mir einen Hinweis geben, wo ich mir ein solches Ajax Beispiel anschauen kann?

Normalerweise wuerde ich aus dem Controller einfach ein JSON zurueck geben, aber das geht ja so in OXID nicht.

Natürlich geht das. Gib mal “Ajax json” in die Forumsuche ein, da gibts je nach Shop Version passende Vorschläge entweder über die() oder showMessageAndExit()
Beispiele mit classic js habe ich nicht, nur angularjs, aber so muss die URL fürs Request aussehen:
[{ $oViewConf->getSelfLink()|oxaddparams:"cl=dein_controller&fnc=deine_funktion"|replace:"&":"&" }]

Da kannst du dir sicher sein, dass ich schon gesucht habe :stuck_out_tongue: Leider nichts verwertbares gefunden.

Die Variante mit showMessageAndExit scheint erstmal zu klappen. Auch wenn der ContentType noch nicht hinhaut.

oxRegistry::getUtils()->showMessageAndExit(json_encode([
 'data1',
 'data1=2',
 'data3'
]));

Den output kann man immerhin als JSON verwenden.

Variante 2 waere:

?renderPartial=1

Damit bekomme ich ein gerendertes TPL. Kann ich auch mit leben irgendwie.