Contao-Camp 2024
Ergebnis 1 bis 4 von 4

Thema: AJAX response ohne HTML

  1. #1
    Contao-Nutzer
    Registriert seit
    07.08.2018.
    Beiträge
    5

    Frage AJAX response ohne HTML

    Hallo,

    ich arbeite derzeit an einer Tabelle mit dynamischen Inhalt (suche.php). Die Auswahl von Filtern wird via JS/AJAX an ein zweites PHP-Skript übergeben, wo damit eine Datenbankabfrage gestartet wird, die dann modifiziert die neuen Tabellenzeilen zurückliefern soll (filter.php).
    Das Problem ist jedoch, dass das filter.php, obwohl im Template-Verzeichnis, nicht automatisch auf die Datenbank zugreift. Mit
    PHP-Code:
    require_once('../system/initialize.php'); 
    kann ich zwar die Datenbank aufrufen, aber AJAX erhält dann statt des eigentlich gewünschten Inhalts den normalen HTML-Output von Contao.
    HTML-Code:
    <!DOCTYPE html>
    <html>
    <head>
    
      <meta charset="utf-8">
      <title>Ungültiger Anfrage-Token</title>
      <meta name="generator" content="Contao Open Source CMS">
      <meta name="viewport" content="width=device-width,initial-scale=1.0"> [... und viel mehr]
    Daher wäre meine Frage, wie kann ich den HTML output unterbinden, oder wahlweise ausschließlich die Contao-Datenbankverbindung laden. (require_once Database.php mag auch nicht).

  2. #2
    Contao-Fan Avatar von Sioweb
    Registriert seit
    12.08.2011.
    Ort
    Düsseldorf
    Beiträge
    405
    User beschenken
    Wunschliste

    Standard

    Ho!

    Also erstmal müsstest du die Anfrage-Tokens entweder abschalten, oder im AJAX einen Token mitsenden.

    Dann gibts du dem Ajax einen Parameter mit wie ?dein_ajax_parameter=1

    Dann erstellst du ein kleines Modul mit einer config.php und einer Klasse. In der Config-Datei registrierst du den Hook für Ajax-Abfragen und in der Klasse führst du am Ende deiner Ajax-Call-Methode, einfach ein die(); aus.

    Für Contao 3 hab ich hier ein Dummy der dir helfen kann https://github.com/Sioweb/Contao3DummyBundle in Contao 4 ist der aufbau ähnlich

    Hier der Link direkt zur Config: https://github.com/Sioweb/Contao3Dum...config.php#L91
    Grüße Sascha W. @Sioweb
    schadebalken.de | zurück-zu-montag.de
    +++ Programmierer von Change-Lok erfasst worden +++

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.901
    Partner-ID
    10107

    Standard

    Alternativ würde ich https://github.com/richardhj/contao-simple-ajax empfehlen.

  4. #4
    Contao-Nutzer
    Registriert seit
    07.08.2018.
    Beiträge
    5

    Daumen hoch

    Zitat Zitat von Sioweb Beitrag anzeigen
    Also erstmal müsstest du die Anfrage-Tokens entweder abschalten, oder im AJAX einen Token mitsenden.
    Hey, danke. Einen Request-Token mitzuschicken hat tatsächlich schon ausgereicht.
    Code:
    var req = new XMLHttpRequest();
    req.open("POST", "templates/filter.php");
    req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    req.onload = function() {alert(req.responseText();}
    var searchfield = "REQUEST_TOKEN={{request_token}}&search="+search; //DAS HIER
    req.send(searchfield);

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
  •