REBOL [
Title: "Web Form Widgets"
File: %webwidget.r
Date: 20-Jul-1999
Author: "Andrew Grossman"
Purpose: {
Generate HTML code quickly and easily for several form elements.
}
Usage: {
make-widget/select to make a form select.
make-widget/select/multiple to make a multiple select.
make-widget/radio to make radio buttons.
make-widget/checkbox to make checkboxes.
Arguments are widget name, widget values, and selected value
(for select) or line ending (for others).
Add /number to any of these to number submitted values.
}
Category: [markup 3]
]
CGI-widget: func [
"Prints select, radio button, or checkbox CGI Form elements"
name [any-string!] "Widget name"
values [series!] "Widget items"
selectterm [any-type!] "Item selected and item ending"
/select/multiple/number/radio/checkbox/number
/local num
][
all [select print reform [#<SELECT either multiple ['MULTIPLE][#]
#NAME= mold name #>]]
forall values [
print rejoin [
any [all [select {<OPTION VALUE=}]
all [radio {<INPUT TYPE="RADIO" VALUE=}]
all [checkbox {<INPUT TYPE="CHECKBOX" VALUE=}]
] mold form either number [num: index? values][first values]
any [all [number selectterm = num " SELECTED"] #]
#> first values selectterm]
]
all [select print </SELECT>]
]