Ergebnis 1 bis 5 von 5

Thema: SimpleAjax - Was ist die richtige URL in der $.ajax function?

  1. #1
    Contao-Nutzer
    Registriert seit
    21.10.2014.
    Beiträge
    41

    Standard SimpleAjax - Was ist die richtige URL in der $.ajax function?

    Hi, ich versuche gerade zum ersten mal SimpleAjax mit Contao4 zu benutzen und scheitere leider. Ich habe ein Backendmodul, das mir Uploads von Teilnehmer in einer Liste anzeigt und möchte gerne eine Filterfunktion per Ajax umsetzen.
    Vorgegangen bin ich nach dieser Anleitung: https://github.com/richardhj/contao-simple-ajax

    Irgendwie krieg ichs nicht hin die Geschichte auszulösen. Aber das mit dem EventListener hab ich ehrlich gesagt nicht so ganz verstanden. Kann mir jemand weiterhelfen? Ich bekomme immer in der Console nen 404 für SimpleAjax.php. Vermutlich wird das wohl nicht mehr so aufgerufen wie in Contao 3.5.x?
    Installiert habe ich nach Anleitung die Erweiterungen:

    contao-community-alliance/event-dispatcher
    richardhj/contao-simple-ajax

    Hier mein Code:

    meinmodul/config/config.php:
    Code:
    $GLOBALS['TL_HOOKS']['simpleAjax'][] = array('ModuleTeilnehmerUploads', 'filterUploads');
    meinmodul/config/event_listeners.php:
    Code:
    return array(
         'SimpleAjax\Event\SimpleAjax' => array(
            array('ModuleTeilnehmerUploads', 'filterUploads')
        ),
    );
    meinmodul/modules/ModuleTeilnehmerUploads.php:
    Code:
    class ModuleTeilnehmerUploads { 
    ..
    public function filterUploads(\SimpleAjax\Event\SimpleAjax $event)
       {
           if ('teilnehmer-uploads' !== \Input::get('acid'))
           {
               return;
           }
           
           $return = ['foo', 'bar', 'foobar'];
           $response = new \Symfony\Component\HttpFoundation\JsonResponse($return);
           $event->setResponse($response);
        }
    }
    JS:
    Code:
    $.ajax({
         type: "GET",
         dataType: "html",
         url: "SimpleAjax.php,
         acid: "teilnehmer-uploads",
         success: function(ret){
            console.log("Success! " + ret);
          },
          error: function(request, status, error){
             console.log(error);
          },
    });
    Danke im Voraus!

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Zitat Zitat von androsch Beitrag anzeigen
    Ich bekomme immer in der Console nen 404 für SimpleAjax.php. Vermutlich wird das wohl nicht mehr so aufgerufen wie in Contao 3.5.x?
    Doch, eigentlich sollte es ganauso aufgerufen werden. Die SimpleAjax.php ist nur im Gegensatz zur 3.5.x Version keine Datei mehr sondern eine Route: https://github.com/richardhj/contao-...routing.yml#L2

    Das das bei Dir wohl nicht funktioniert, nehme ich an, Du hast das Bundle nicht korrekt installiert. Wir hast Du das denn gemacht? (Und wieso hast Du contao-community-alliance/event-dispatcher angegeben? SimpleAjax sollte etwaige Abhängikeiten doch selbst installieren).
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Nutzer
    Registriert seit
    21.10.2014.
    Beiträge
    41

    Standard

    Danke für die Antwort. Ich habe die Erweiterung richardhj/contao-simple-ajax über den Contao-Manager installiert. Dachte nach der Anleitung, dass ich den EventListener selber installieren muss.

  4. #4
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Zitat Zitat von androsch Beitrag anzeigen
    Dachte nach der Anleitung, dass ich den EventListener selber installieren muss.
    Eher nicht. Es ist ja gerade die Aufgabe vom Contao-Manager bzw. composer sich um alles zu kümmern.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  5. #5
    Contao-Fan
    Registriert seit
    27.06.2010.
    Beiträge
    539

    Standard

    Hallo,

    zuerst empfehle ich dir, eine lokals Bundle nach dieser Anleitung zu erstellen:
    https://community.contao.org/de/show...l=1#post462159

    Dann empfehle ich dir, die SimpleAjax Extension gar nicht erst zu verwenden für Contao 4 und lieber auf Routings zu setzen. Dokumentation verfügbar in den Symfony Docs, oder in einer anderen Erweiterung von mir, bspw. https://github.com/richardhj/isotope-klarna-checkout
    bei Routings wichtig:
    https://github.com/richardhj/isotope...Plugin.php#L28
    https://github.com/richardhj/isotope...in.php#L51-L66
    https://github.com/richardhj/isotope...ting.yml#L1-L6 (statt _controller den Klassennamen)
    https://github.com/richardhj/isotope...oller/Push.php

    Alles weitere sollte es dann hier geben: https://docs.contao.ninja/de/routing-in-contao-4.html

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •