2 Frames dynamisch erzeugen
Werner
- cgi
Hallo,
ich möchte ein Perl-skript schreiben, das abhängig von Benutzereingaben ein Frameset mit zwei Frames zurückliefert (1 Menü + 1 Hauptfenster). Dabei soll auch der Inhalt der beiden Frames dynamisch erzeugt werden ? Geht so was überhaupt ohne temporäre Dateien ?
Danke
hi!
ich möchte ein Perl-skript schreiben, das abhängig von
Benutzereingaben ein Frameset mit zwei Frames zurückliefert (1
Menü + 1 Hauptfenster). Dabei soll auch der Inhalt der beiden
Frames dynamisch erzeugt werden ? Geht so was überhaupt ohne
temporäre Dateien ?
Ja, es geht. Ist allerdings ein bisschen umständlich, weil Perl
eigentlich gar nicht weiß, was Frames überhaupt sind. Du musst dem
Perl-Skript jeweils einen Parameter übergeben, der ihm sagt, welcher
Teil des Framesets zu laden ist. Zb:
skript.pl?load=menuframe
Das Skript gibt den Quelltext des Menüframes zurück.
skript.pl?load=mainframe
Das Skriüt gibt den Quelltext des Hauptframes zurück.
skript.pl?load=frameset
Das Skript gibt das Frameset zurück, dabei lädt es im linken Frame
skript.pl?load=menuframe und rechts skript.pl?load=mainframe.
Im Skript musst du dann nur noch checken, welchen Wert der Parameter
"load" hat und dementsprechend in verschiedene Teile des Programms
verweisen.
bye, Frank!
Hallo,
ich möchte ein Perl-skript schreiben, das abhängig von Benutzereingaben ein Frameset mit zwei Frames zurückliefert (1 Menü + 1 Hauptfenster). Dabei soll auch der Inhalt der beiden Frames dynamisch erzeugt werden ? Geht so was überhaupt ohne temporäre Dateien ?
Jedes Frame ist ein eigenständiger Request an den Webserver. Der Server weiß nicht, daß die Seiten in Frames landen. Für ihn ist es das gleiche, als ob die zwei Seiten von unterschiedlichen System aufgerufen werden. So weit zu Frames.
Deshalb ist es nicht möglich, die beinden frames mit einem Aufruf des Scripts zu befüllen, außer Du wählst den Umweg über Javascript, was ich persönlich aber nicht für sinnvoll halte.
Du kannst also nur drei verschiedene Script-Aufrufe durchführen. Einer für das erzeugen von Frames, einer für das Menü und einer für die Hauptseite.
Das können jetzt verschiedene Scripts sein, oder aber auch nur eines.
Mit einem Script kannst Du das z.B. bewerkstelligen, indem Du 'Modes' einführst:
<code>
#!/usr/bin/perl -w
use strict;
use CGI;
my($query) = new CGI;
my($mode) = $query->param('MODE');
$mode = 'FRAMES' unless $mode; # Frames werden angezeigt, wenn kein
# Mode angegeben wurde
if($mode eq "FRAMES")
{
&ShowFrames($query);
}
elsif($mode eq "MENU")
{
&ShowMenu($query);
}
elsif($mode eq "MAIN")
{
&ShowMain($query);
}
else
{
&ExitWithError("Invalid Mode");
}
</code>
Irgendwas in der Art funktioniert sicher, da hat jeder seine Vorlieben.
Grüße
Klaus