[Frage] Viewhelper Output mittels Ajax Call neu laden [Gelöst]

  • ironpfu ironpfu
    R2-D2
    0 x
    99 Beiträge
    1 Hilfreiche Beiträge
    06. 05. 2015, 13:31

    Hallo,

    ich habe mehrere komplexe VH welche mir eineseits die Daten aufbereiten, gleichzeitig aber auch die Möglichkeit geben die Daten zu manipulieren. Als Beispiel einen einfachen VH für Sternbewertung (INT 1-5), welche einerseits die mittlere Bewertung anzeigt und gleichzeitig die Möglichkeit bietet selbst eine Bewertung abzugeben. Die Bewertungsabgabe funktioniert über AJAX. Soweit klappt auch alles, mit einem einzigen Schönheitsfehler: Die Bewertung stimmt natürlich nach dem AJAX CAll nicht mehr und benötigt einen Page reload. Ist es möglich den VH in entsprechenden AjaxAction aufzurufen und den Output zu übernehmen? Kennt jemand eine Extension in welche dieses Problem elegant gelöst wurde?

    Besten Dank, Jürgen

  • ironpfu ironpfu
    R2-D2
    0 x
    99 Beiträge
    1 Hilfreiche Beiträge
    07. 05. 2015, 08:17 - Lösung

    Danke für die Info.
    Den Ajax Call habe ich über die PageNum gelöst, da bei mir die Eid unter Typo3 6.2.5 nicht funktionierte. Ich habe nun in der aufgerufenen Action einfach ein Service injected welche die gleichen Aufgaben erledigt wie der VH. Dies ist alles andere als sauber und führt zu doppelten Quellcode. Sauberer wäre es das Service so zu bauen, dass es sowohl für den VH als auch in der AjaxAction den gleichen Zweck erfüllt oder gibt es eine bessere Lösung?


  • 1
  • toifel toifel
    Jedi-Ratsmitglied
    0 x
    831 Beiträge
    96 Hilfreiche Beiträge
    06. 05. 2015, 16:12

    Das wird nicht so einfach gehen, da du den ViewHelper ja irgendwie zuerst instanzieren und die render() Funktion aufrufen musst.. dafür bräuchtest du dann schon ein eigenes PHP Skript.

    Erstelle dir einfach eine ajaxAction in deinem Controller und arbeite mit einem Dispatcher, hier ist ein gutes Beispiel: http://t3-developer.com/extbase-fluid/extensions-erweitern/ajax-in-extensions/ajax-dispatcher-eid-in-typo3-61/

  • ironpfu ironpfu
    R2-D2
    0 x
    99 Beiträge
    1 Hilfreiche Beiträge
    07. 05. 2015, 08:17

    Danke für die Info.
    Den Ajax Call habe ich über die PageNum gelöst, da bei mir die Eid unter Typo3 6.2.5 nicht funktionierte. Ich habe nun in der aufgerufenen Action einfach ein Service injected welche die gleichen Aufgaben erledigt wie der VH. Dies ist alles andere als sauber und führt zu doppelten Quellcode. Sauberer wäre es das Service so zu bauen, dass es sowohl für den VH als auch in der AjaxAction den gleichen Zweck erfüllt oder gibt es eine bessere Lösung?

  • 1