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>
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
}}}}
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.