Theo: Formulare über mehrere Frames?

Hallo,
ich habe eine HTML Seite, die im Prinzip ein einziges großes Formular ist, welches per Perl-Skript generiert wird.
Die Seite hat drei Bereiche:

  • links eine Steuerleiste, die Checkboxes und Submit-Buttons enthält.
  • im mittleren Bereich (Hauptfenster) gibt es Textfelder und weitere Submit-Buttons.
  • im Rechten Bereich soll der Inhalt einer HTML-Datei angezeigt werden.
    Die Steuerleiste ist inzwischen so lang geworden, so dass ich für manche Selektionen nach unten scrollen muss. Dabei werden natürlich auch die anderen Teilseiten nach unten gescrollt, was unerwünscht ist.

Um das zu separieren, wären doch Frames mit individuellen Scrollbars geeignet?!

Wenn ich jetzt allerdings Frames verwende und ich drücke im Hauptfenster einen Submit-Knopf
1. wie komme ich an die Checkbox-Daten des Steuerleisten-Frames?
2. wie kann ich dem Perl-Skript sagen, dass es einen neuen HTML-Code in den Steuerleisten-Frame schreiben soll?

Mit der Perl-Sequenz

print "Content-type: text/html\n\n";
print "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
... hier kommt der HTML-Code...";

wird doch in den Frame geschrieben, in dem ich den Submit-Knopf gedrückt habe, oder?

Verschiedene Beiträge im Forum sagen, dass Formulare nicht über Frames verteilt werden können. z.B.
http://forum.de.selfhtml.org/archiv/2005/3/t103820/
http://forum.de.selfhtml.org/archiv/1999/7/t5251/

Wie dann? Oder bin ich da auf dem falschen Dampfer und sollte das ganz anders realisieren?
Es gibt scrollbare Textfelder, doch da bringe ich keine Buttons rein.

Danke für Hinweise...

  1. Hi,

    ich habe eine HTML Seite, die im Prinzip ein einziges großes Formular ist, welches per Perl-Skript generiert wird.
    [...]
    Um das zu separieren, wären doch Frames mit individuellen Scrollbars geeignet?!

    sicher nicht, denn dann zerlegst du dein HTML-Dokument in mehrere voneinander unabhängige Dokumente, so dass eins nichts vom anderen weiß.

    Wenn ich jetzt allerdings Frames verwende und ich drücke im Hauptfenster einen Submit-Knopf

    1. wie komme ich an die Checkbox-Daten des Steuerleisten-Frames?

    Gar nicht. Das Dokument im "Hauptfenster" agiert selbständig und weiß nichts von anderen Frames.

    1. wie kann ich dem Perl-Skript sagen, dass es einen neuen HTML-Code in den Steuerleisten-Frame schreiben soll?

    Gar nicht. Perl ist ebenso wie PHP eine serverseitige Sprache, die von irgendwelchen Besonderheiten auf der Client-Seite nichts weiß. Perl "weiß" nur, dass ein Server-Request stattfand, und sendet eine entsprechende Antwort. Wie der Client diese Antwort verarbeitet, ist seine Sache.
    In diesem Fall wird sie das Dokument *eines* Frames ersetzen.

    Mit der Perl-Sequenz
    print "Content-type: text/html\n\n";
    print "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
    ... hier kommt der HTML-Code...";
    wird doch in den Frame geschrieben, in dem ich den Submit-Knopf gedrückt habe, oder?

    Wenn dieses Script beim Absenden aufgerufen wird: Ja. Der Client (hier: Browser) zeigt die vom Server gesendete Antwort in dem Fenster/Frame an, von dem aus das Formular angesendet wurde.

    Verschiedene Beiträge im Forum sagen, dass Formulare nicht über Frames verteilt werden können.

    Richtig.

    Wie dann? Oder bin ich da auf dem falschen Dampfer und sollte das ganz anders realisieren?
    Es gibt scrollbare Textfelder, doch da bringe ich keine Buttons rein.

    Aber es gibt die Möglichkeit, beliebige Elemente in ihrer Größe zu begrenzen und beim Überschreiten dieser Größe zu scrollen.

    So long,
     Martin

    --
    Computer lösen für uns Probleme, die wir ohne sie gar nicht hätten.
    1. Aber es gibt die Möglichkeit, beliebige Elemente in ihrer Größe zu begrenzen und beim Überschreiten dieser Größe zu scrollen.

      Hi Martin,
      Dankeschön für den Hinweis.
      Wusste ich doch, dass ich bei meiner Suche etwas übersehen habe... Genau sowas habe ich gesucht!