[Frage] Ajax im Module TYPO3-Version: 8.7.1

  • getit getit
    Jedi-Ritter
    0 x
    137 Beiträge
    4 Hilfreiche Beiträge
    27. 05. 2017, 12:50

    Nach vielem Probieren und such im Netz habe ich endlich eine Möglichkeit gefunden, in meinem Modul ein AJAX-Call zu starten:

    1. TYPO3\CMS\Core\Utility\ExtensionManagementUtilityExtensionManagementUtility::registerAjaxHandler();

    Aber leider habe ich jetzt noch 2 Probleme:

    [b]1.[/b] registerAjaxHandler() ist als veraltet markiert und wird mit TYPO3v9 entfernt.
    Was soll ich als Ersatz verwenden?
    Ich habe einfach mal den Inhalt dieser Funktion direkt hingeschrieben.
    Also statt dem obigen Aufruf:

    1. $GLOBALS['TYPO3_CONF_VARS']['BE']['AJAX']['kkbaybwBackendLebenslage::sort'] = [
    2. 'callbackMethod' => 'KKSoftware\\Kkbaybw\\Controller\\Backend\\LebenslageController->sortAjax',
    3. ];

    [b]2.[/b] Wie komme ich an den Response?

    1. var objVal = $('input[type="hidden"][name="object"]').val();
    2. var ajaxUrl = TYPO3.settings.ajaxUrls['kkbaybwBackendLebenslage::sort'];
    3. $.ajax({
    4. url: ajaxUrl,
    5. method: 'POST',
    6. data: {
    7. lebenslage: objVal
    8. },
    9. dataType: "json",
    10. success: function(response) {
    11. console.log(response);
    12. }
    13. });

    1. /**
    2.  * @return string
    3.  */
    4. public function sortAjax() {
    5. $data = $_POST['lebenslage'];
    6. $data = json_decode($data, true);
    7. arsort($data); // erstmal zum testen immer so
    8. return json_encode($data);
    9. }

    Der 'console.log(response);' im JS ist immer leer.
    Wieso?

    Hoffentlich kann mir jemand bei meinen 2 Problemen behilflich sein.


  • 1
  • 1