Frames mit Perl erzeugen
BAKKA
- perl
0 Tom0 Frank Schönmann
Hallo mal wieder..
Ich hab ein Perlscript, welches eine Eingabe erwartet und eine Ausgabe ausgibt....
Ich moechte jetzt gerne die eingabe in einem Frame und die Ausgabe in einem anderen Frame haben, und das alles in nur einem Perl dokument...
also den einen Teil des Perlscripts(die Eingabe) in den einen Frame und den anderen Teil des Perlscripts(die Ausgabe)in den anderen Frame...
ist das moeglich?
Danke im Voraus, und nich boese sein , wenn die Frage zu bloed ist :)
BAKKA
Hallo Bakka
Du gestalltest den Eingabeframe als normales HTML-Formular und gibst im Form-Tag als Action das perlskript an, das mit den Eingaben ausgeführt werden soll und zusätlich ein Attribut target="Ausgabeframe" an.
z.B. <form action="../cgi-bin/tuwas.pl" method="POST" target="Ausdabeframe" enctype="application/x-www-form-urlencoded">
Dabei ist Ausgabeframe der Name den Du im Frameset definiert hast.
Grüsse
Tom
Danke ersteinmal fuer Deine Loesung,
aber gibt es nicht irgendwie die moeglich keit innerhalb meines Perlscripts die Frames einzufügen ?
Also irgendwie in der form:
#!/usr/local/bin/perl
use CGI qw(:standard);
print "<frameset> ";
print "<frame >";
meine Eingabe
print "<frame>";
meine Ausgabe
print "</frameset>";
????
Falls eine solche Version totaler Unsinn ist,
versuch tritzdem keine Boesen Worte zu benutzten
:)
Bakka
Hallo Bakka
aber gibt es nicht irgendwie die moeglich keit innerhalb meines Perlscripts die Frames einzufügen ?
Natürlich, nur sieht das so aus, dass Du zuerst die HTML-Dokumente für die Frameinhalte erzeugts, diese auf dem Server speicherst, dann das Framset-Dokumnet erzeugst und dieses zum Browser zurücksendest. Sieht in Perl etwa so aus:
$AbsolutePath = "/user/iregndwas/htdocs/"; # absloter Pfad auf dem Server
$Frameeingabe = $AbsolutePath."eingabe.html"; # Dateiname des Eingabe-Framedokument
$Frameausgabe = $AbsolutePath."ausgabe.html"; # Dateiname des Ausgabe-Framedokument
$Frameset = $AbsolutePath."index.html"; # Dateiname des Frameset-Dokument
open(EINGABEFRAME, ">$Frameeingabe") die;
print EINGABEFRAME "<html> ... </html>"; # Erzeuge das Eingabeformular
close EINGABEFRAME;
open(AUSGABEFRAME, ">$Frameausgabe") die;
print AUSGABEFRAME "<html> ... </html>"; # Erzeuge die Ausgabe nach deinen Wünschen
close AUSGABEFRAME;
open(FRAMESET, ">$Frameset") die;
print FRAMESET "<html> ... </html>"; # Erzeuge das Frameset-Dokument. Hierdrinn musst Du die Links auf die URLs der beiden Framedokumente richtig setzen.
close FRAMESET;
print "Content-Type: text/html\n\n" ;
print "Location: $URLzuFramset";
Also viel Glück und Grüsse
Tom
P.S: Ich bin ein wenig in Eile und werde bis Montag offline sein. Sorry :-(
Hi,
aber gibt es nicht irgendwie die moeglich keit innerhalb meines Perlscripts die Frames einzufügen ?
Also irgendwie in der form:print "<frameset> ";
print "<frame >";
meine Eingabeprint "<frame>";
meine Ausgabeprint "</frameset>";
mit Perl kannst Du exakt das selbe machen, wie von Hand. Überlege also, wie Du die Frames mit einem Texteditor und HTML-Dateien erstellen würdest, und programmiere das Script dann so, daß es das für Dich erledigt. Ein Parameter, der Dir sagt, welche Seite gerade erstellt werden soll (0=Frameset, 1=Eingabeframe, 2=Ausgabeframe), hilft.
Cheatah
hi!
Ich moechte jetzt gerne die eingabe in einem Frame und die Ausgabe in einem anderen
Frame haben, und das alles in nur einem Perl dokument...
Das geht, wenn auch etwas kompliziert:
Das Perl-Skript skript.pl erzeugt normalerweise einfach eine Frameset-Definion:
<frameset ...>
<frame src="skript.pl?frame=eins" ...>
<frame src="skript.pl?frame=zwei" ...>
</frameset>
In der Framesetdefinition ruft sich das Skript für jeden Frame selbst auf, allerdings mit Parameter. Am Anfang des Skripts kannst du dann überprüfen, was es ausgeben soll, und zwar anhand der übergebenen Parameter: wird kein Parameter übergeben, gibt es das Frameset aus, wird der Parameter frame übergeben, gibt es den Source des jeweiligen Frames aus.
bye, Frank!
Das geht, wenn auch etwas kompliziert:
Das Perl-Skript skript.pl erzeugt normalerweise einfach eine Frameset-Definion:
<frameset ...>
<frame src="skript.pl?frame=eins" ...>
<frame src="skript.pl?frame=zwei" ...>
</frameset>
Ich mache es lieber mit drei verschiedenen Perl-Skripts: Eines generiert nur den Frameset mit den beiden Frames, und dieses aktiviert dann ja die beiden anderen Skripte.
Warum alles in ein Skript zwängen und dann mühsam per Parameter wieder unterscheiden?
Hi,
Ich mache es lieber mit drei verschiedenen Perl-Skripts: Eines generiert nur den Frameset mit den beiden Frames, und dieses aktiviert dann ja die beiden anderen Skripte.
Warum alles in ein Skript zwängen und dann mühsam per Parameter wieder unterscheiden?
warum drei Dateien auf den Server schmeißen und pflegen, wenn es problemlos in einer einzigen geht, zumal wenn die selben Dinge passieren (z.B. Konfigurationsdaten einlesen)? ;-)
Cheatah