PHP und AJAX in Kombination

  • Hey Leutz,

    programmiere gerade etwas, bei dem ich alleine nicht weiterkomme.

    es gibt eine ausgangsdatei "index.php" di über AJAX einen aufruf auf die datei "verteiler.php" macht. diese 'verteiler.php' ruft über die von der 'index.php' übergebenen GET daten eine weitere datei in einem anderen verzeichnis auf. diese bindet die 'verteiler.php' mit include ein. des problem ist, das ich gerne die ausgabe der 'verteiler.php' in der der datei 'index.php' ausgeben möchte.

    das problem ist nur, dass ich nicht weiß wie ich das anstellen soll.

    (für alle die sich fragen, warum das ganze so kompliziert angestellt wird: es handelt sich hierbei um ein sicherheitsscript welches so funktionieren soll)

    thx im voraus,
    greez makroy

  • ok, hier der quellcode

    index.php:
    ...

    <script language="javascript" type="text/javascript">
    // Handler erstellen
    var req = new XMLHttpRequest();

    // Handler überwachen und auf Veränderungen reagieren
    req.onreadystatechange = function() {
    switch(req.readyState) {
    case 0:
    return;
    case 1:
    return;
    case 2:
    return;
    case 3:
    return;
    case 4:
    document.getElementById("ausgabe").innerHTML = req.responseText;
    return;
    }
    }

    // Verbindung herstellen
    req.open("GET", "plugins/makroindustries/verteiler.php?inhalt=<?php echo $_GET['content'] ?>", true);

    // Anfrage senden
    req.send(null);
    </script>


    <div id="ausgabe"><h4>Lade Seiteninhalt...</h4><span style="font-size:10px;">(Sollte diese Meldung nach 10 Sekunden nicht verschwunden sein, so vergewissern Sie sich, dass Sie JavaScript in Ihrem Browser aktiviert haben)</span></div>

    ...

    verteiler.php
    <?php
    # (C) makroindustries 2008
    # Dateiversion 1.0.0.0 (experimental; BUILD 2)

    # Datei: 'verteiler.php'
    # Aufgabe: Bekommt die Clientseitige AJAX-Anfrage und schickt die gewünschte Zieldatei zurück
    chdir("../../");
    include('include/content/'.$_GET['inhalt'].'.php');
    ?>

    die zweite datei erhält von AJAX get anweisungen über welche datei sie mit include einbinden soll. dies wird auch getan. doch das problem ist dass ich nicht weiß wie ich den eingebundenen text zur ausgangsdatei "index.php" bekomme.
    ein echo vor dem include hat nix gebracht. und file_get_contents oder so bringt auch nix, da der code auch ausgeführt werden soll (php code)


    is es jetzt verstnändlicher?
    bitte ja

  • naja ich kenn AJAX leider nciht
    aber man kann damit doch PHP-Funktionen aufrufen, oder?
    also könntest du vielleicht in diese ein return reingeben?
    dann sollte es doch gehen von PHP an AJAX zurück variablen zu schicken
    da schreibst du dann rein was du haben willst

    wenn du die ausgabe einer datei haben willst schreibst du einfach immer statt echo "bla"; folgendes:
    $rueckgabe .= "bla";
    und am ende:
    return $rueckgabe;

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • also mir ist nicht bekannt, dass man php funktionen aufrufen kann. jedenfalls nicht direkt. über umwege ist es schon möglich.
    leider ist das nicht die lösung die ich suche, da ich keine chance habe irgendwelche variabeln hin und herzusenden :(

  • ja das weiß ich, hab mich nur noch nicht wirklich damit beschäftigt, also kenn ich nicht alle möglichkeiten...
    hätte ja sein können^^

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • AJAX hat doch nen XML-Parser eingebaut
    könntest du dir net ne XML-Datei von PHP erstellen lassen und die dann mit AJAX zerlegen?

    oder reicht nicht die responseText-Eigenschaft von AJAX?

    Something big is coming. And there will be pirates and ninjas and unicorns...