Sven Rautenberg: layer - div Ausgabe ändern

Beitrag lesen

Moin!

Die Datei in der sich die Figur befindet nennt sich z.B. "comic.php4" und wird zum Beispiel mittels

<!--#include virtual="comic.php4"-->

in der Datei Seite1.shtml includet.

Wenn ich das <FORM ... ACTION="zum php-script"...> mit dem Absenden Button schicke, öffnet er logischerweise die PHP-Seite, aber nicht im Layer von comic.php4 sondern in Seite1.shtml.

Achtung, Denkfehler in deiner Vorgehensweise.

Die Sache mit dem Browser läuft so: Er nimmt immer vollständige Seiten vom Server entgegen. Um eine neue Seite zu erhalten, kann der Browser wahlweise einfach nur eine URL übermitteln, oder auch noch ein paar Formulardaten mitschicken.

Wenn deine Comicfigur also Bestandteil einer vollständigen Seite ist, dann muß das Ergebnis des Formularabschickens wieder eine vollständige Seite sein. Logischerweise kannst du die Formulareingabe dann nicht dem winzigen Ausschnitt schicken, der die Comicfigur generiert, sondern mußt es dem Gesamtskript schicken, welches die komplette Seite generiert.

Lösungsansätze:
1. Wie erwähnt: Das Gesamtskript muß mit den Comiceingaben zurechtkommen (kann sie ja durchreichen).

2. Du löst die Comicfigur aus der Seite heraus und setzt an diese Stelle einen IFRAME. Dort hinein kommt dann eine komplette HTML-Seite, welche nur die Comic-Figur enthält - und schon klappt die Formular-Absende-Geschichte innerhalb des IFRAMEs prima. Aber Netscape 4 kann keine IFRAMEs, das könnte ein Problem werden.

3. Natürlich geht das, was mit IFRAMES geht, auch mit ganz normalen Frames. Das Prinzip ist, eine funktionale Einheit "Comicfigur" unabhängig von der restlichen Seite mit dem Server kommunizieren zu lassen.

Was definitiv nicht möglich ist: Durch Formularabschicken neue Daten für einen <div>-Layer vom Server zu kriegen. Es ist in den einzelnen Browsern ja oftmals schon unmöglich, die Inhalte von solchen Layern per Javascript zu ändern. Und da es keine eigenständige HTML-Ressource ist, sondern Bestandteil eines Fensters, kann nur durch komplettes Neuübertragen der gesamten Seite der Inhalt des <div> aktualisiert werden.

- Sven Rautenberg