Hallo zusammen,
ich versuche gerade Module bzw. Elemente aus einen Artikel mittels Ajax nach zu laden. Dazu benutzte ich folgende Erweiterung "contao-ajax_reload_element". Ich habe ein Element erstellt und bei diesem den Harken bei "Ajax-Relaod erlauben" gesetzt. Zu dem habe ich folgendes Skript unter dem Seitenlayout bei jQuery mit eingebunden.
j_ajax.html5
Das ich hier natürlich gerade keinen passenden Link auf der Site habe weiß ich. Was mich jetzt aber verwundert, dass die Inhalte welche mittels Ajax nachgeladen werden sollten angezeigt werden. Ich dachte ich müsste erst das Skript ausführen über ein Click-Event.Code:<script> $(".mod_my_module a.reloadThisElementOnClick").click(function (event) { // Don't follow the link event.preventDefault(); // Var containing the elements div container like ".mod_my_module" var element = $(this).closest('[class^="ce_"],[class^="mod_"]'); // Add a css class to this element. An overlay and spinning icon can be set via css element.addClass('ajax-reload-element-overlay'); $.ajax({ method: 'GET', url: 'SimpleAjaxFrontend.php', data: { action: 'reload-element', // The data- attribute is set automatically element: element.attr('data-ajax-reload-element'), // Some elements use an auto_item to fetch particular content. The auto_item will automatically set in a data- attribute auto_item: (typeof element.attr('data-ajax-reload-auto-item') != typeof undefined) ? element.attr('data-ajax-reload-auto-item') : '', // A page id can be set optionally. Necessary for elements that work with different language files page: <?= $GLOBALS['objPage']->id ?> } }) .done(function (response, status, xhr) { if (response.status == 'ok') { // Replace the DOM element.replaceWith(response.html); } else { // Reload the page as fallback location.reload(); } }); }); </script>
Ich denke das ich noch irgendwas falsch mache.
Contao Installation ist 3.5.19 und Extension ist 1.0.2 mittels Composer installiert.
Anbei der Link zu meiner Test Seite: Link
Vielen Dank vorab für Eure Unterstützung :-)
Grüße
Andre

Zitieren
