Andreas Päßler: Dateiinhalt aus einem Dokument in ein Div-Objekt laden!

Hallo miteinander, Ich habe ein div-Element, dass je nach Referenzierung mittels PHP eine Datei includiert. Ein weiteres div soll nun aber noch den alten Inhalt vorhalten. PHP kann nur aktuelle Informationen verarbeiten. Alles alte ist vergessen. Somit möchte ich Javascript hierfür einsetzen. Für das zweite DIV soll der jeweils älteren Inhalt geladen werden. Allein an der Ausführung scheitert's!

  • divobj.setAttribute('src', url); Ein Alert-Befehl nennt die Pfadausgabe. Eine Fehlermeldung gibt es nicht. Mit: document.createElement("div"); komme ich nicht ans Ziel. Ich brauche kein neues Element.

Wichtig: Ich verwende ein Iframe, wodurch zur JS-Verarbeitung relevante Daten an das Elternfenster verschickt werden und PHP-Anweisungen im Iframe dort nichts beeinflusst. Aus dem Iframe kann nun wieder im Parent abgefragt werden, was alt und neu ist.

Wo ist das Problem zu suchen?

  1. Hallo Andreas,

    Ich komme mit deiner Beschreibung noch nicht klar.

    Wo ist das div, das deine Datei anzeigt? Im iframe? Und wo ist das div, das die Vorversion anzeigen soll? Auch im iframe? Oder im Elterndokument?

    Sodann: du hast eine URL, die dir die Vorversion liefert? Zumindest deutet dein Versuch mit dem src-Attribut das an – der aus anderen Gründen scheitern muss: div kennt kein src, du musst den Inhalt vom Server mitliefern oder per Script setzen.

    Um eine Vorgehensweise empfehlen zu können, müsste man wohl etwas mehr über die Art, wie es zu der neuen Version des div kommt, wissen.

    Rolf

    --
    sumpsi - posui - obstruxi
    1. Hi Rolf, wenn ich für ein DIV-Element keine Referenz setzen kann, um eine Datei laden zu können, scheitert dieses Vorhaben. Die DIV-Elemente sind natürlich im Iframe. Im Elternelement werden Schlüsselzahlen, neuer und alter Pfad gespeichert, um eventuell darauf zurückgreifen zu können. Danke für Deine Antwort

      1. Lieber Andreas,

        Die DIV-Elemente sind natürlich im Iframe.

        da läuten bei mir die Alarm-Glocken. Für mich klingt das sehr nach verfehlter Struktur. Zwar kann ich kaum einschätzen, was Du da für ein Projekt hast und inwiefern Deine Vorgehensweise die denkbar beste ist, aber schon allein Deine Problembeschreibung und der Zusammenhang mit iframe klingt mir sehr nach maximaler Umständlichkeit.

        Wenn Du wirklich beschreiben würdest, was Du prinzipiell erreichen möchtest, anstatt hier technische Detailfragen zu erörtern, könnte man besser einschätzen, wie Du besser vorgehen solltest. Aber so lange Du da nichts durchblicken lässt, kommt als Antworten halt nur Stückwerk.

        Im Elternelement werden Schlüsselzahlen, neuer und alter Pfad gespeichert, um eventuell darauf zurückgreifen zu können.

        Das klingt dermaßen danach, diese Informationen in einer Session (also php-seitig) zu speichern, dass jeder Gedanke an JavaScript als Ersatzvorgehen dafür eigentlich nicht sinnvoll ist.

        Liebe Grüße

        Felix Riesterer

  2. Lieber Andreas,

    PHP kann nur aktuelle Informationen verarbeiten. Alles alte ist vergessen.

    das ist so nicht ganz richtig. Du kannst mit einem Session-Mechanismus die gesamte Historie der Aufrufe speichern!

    Session-Mechanismus in PHP (php.net)

    Liebe Grüße

    Felix Riesterer

    1. Hallo Felix, um Sessions zu verstehen, muss ich mich wohl einarbeiten. Das habe ich noch nie angewendet. Ich hab es nie gebraucht! Danke für Deine Antwort.

      1. Hallo Andreas,

        wenn es um den alten Inhalt der Datei geht, könnte das für eine Session ($_SESSION) zu viel werden. Man könnte den alten Inhalt auch in einer .bak-Datei (oder ähnlich) speichern.

        Aber um noch mal auf dein iframe-Konstrukt zurückzukommen: Du verwendest einen iframe NUR, um Dir im Browser von einem Aufruf zum anderen Daten merken zu können?

        Schau Dir bitte mal das Storage-Objekt mit den Ausprägungen localStorage (Inhalt überlebt das Schließen eines Tabs) und sessionStorage (Inhalt bleibt nur während der Anzeige eines Tabs erhalten) an.

        Rolf

        --
        sumpsi - posui - obstruxi