Hallo,
ich möchte die Erweiterung SimpleAjax (https://github.com/richardhj/contao-simple-ajax) in einem Modul verwenden.
Bei dem Modul handelt es sich um ein 3.5er Modul – d.h. ein Modul das unter "system/modules" liegt.
Hier ist meine Klasse welche unter "system/modules/mymodule/classes/MyAjaxListener.php" liegt:
(Diese Klasse wird in der "autoload.php" geladen.)
PHP-Code:
<?php
class MyAjaxListener
{
public function myMethod(\SimpleAjax\Event\SimpleAjax $event)
{
if ('myrequest' !== \Input::get('acid'))
{
return;
}
// Check whether the SimpleAjaxFrontend.php was requested
if (false === $event->isIncludeFrontendExclusive())
{
return;
}
$return = ['foo', 'bar', 'foobar'];
header('Content-Type: application/json');
echo json_encode($return);
exit;
}
}
Hier ist mein Javascript aus dem Frontend-Modul:
Code:$(".mein_link").click(function(e){
e.preventDefault();
$.ajax({
type: "POST",
dataType: "json",
url: "SimpleAjax.php",
acid: "myrequest",
success: function(ret){
console.log("Success! " + ret);
},
error: function(request, status, error){
console.log(error);
},
});
});
Leider klappt das Ganze mit obigem Code jedoch nicht.
Ich bekomme bei meinen Versuchen immer den HTML-Code der Contao-Login-Seite geladen.
D.h. die Callback-Funktion "success" wird ausgeführt – sie liefert aber den falschen Inhalt :)
Ich weiß das man unter Contao 4 für Ajax mit Routings arbeiten soll.
Doch leider blicke ich da nicht ganz durch, daher hätte ich wieder auf die Erweiterung "SimpleAjax" gesetzt.
... gibt es vielleicht ein einfaches Beispiel, das zeigt wie das mit dem Routing unter Contao 4 funktioniert?
Bitte um eure Hilfe.
Danke.