next up previous contents index
Search Next: Upload von Dateien Up: CGI-Skripte mit Ruby Previous: escape und unescape   Contents   Index


Formulare

Formulare ermöglichen dem Surfer, detaillierte Daten einzugeben und an den Webserver zur Weiterverarbeitung zu übermitteln. Der Transfer selbst geschieht entweder (mit GET) in der URL oder (mit POST) über eine eigene Verbindung, die auf die Standardeingabe des Skripts umgeleitet wird.

form("method", "action"){ "content" }
  #-> <FORM METHOD="method"
    ENCTYPE="application/x-www-form-urlencoded"
    ACTION="action">content</FORM>

Ein einfaches Formular:

require "cgi"
cgi = CGI.new("html3")
cgi.out {
 cgi.html {
  cgi.head { cgi.title{"Formulare mit Ruby"} } +
  cgi.body {
   cgi.form("get", "/cgi-bin/getparameters.rb"){
    cgi.hr +
    cgi.h1 { "Report: " } +
    cgi.textarea("report") +
    cgi.br +
    cgi.submit
}}}}

wird ausgewertet:

require "cgi"
cgi = CGI.new("html3")
cgi.out {
 cgi.html {
  cgi.head { cgi.title{"Form auswerten"} } +
  cgi.body {
   if cgi.has_key?('report')
     "report=" + cgi.params['report'][0]
   else
     "Kein Bericht vorhanden!"
   end
}}}

Die Werte der params-Tabelle sind selbst Arrays, weil es ja möglich ist, einem Parameter mehrere Werte zuzuordnen.

Das CGI-Modul unterstützt Methoden für die meisten HTML-Elemente, nicht nur für Formular-Objekte. Eine vollständige Übersicht findet sich in [ThHu01] und natürlich in den Quellen des CGI-Moduls.



(C) 2002 by dpunkt.de, Armin Roehrl, Stefan Schmiedl, Clemens Wyss 2002-01-20