#!/usr/bin/perl -w
######################################################################
# form.pl
######################################################################
# Perl Power! - Michael Schilli 1998
######################################################################

use CGI qw/:standard :html3/;

%labels = ('r' => 'Red', 'b' => 'Blue', 'g' => 'Green');

$popup_menu = popup_menu(            ### popup menu
   '-name'    =>  'color1',          # field name
   '-values'  =>  ['r', 'g', 'b'],   # individual values
   '-default' =>  'r',               # preselected
   '-labels'  =>  \%labels);         # value -> displayed name

$radio_group = radio_group(          ### group of radio buttons
   '-name'    => 'color2',           # field name
   '-values'  => ['r', 'g', 'b'],    # individual values
   '-default' => 'r',                # preselected
   '-labels'  => \%labels);          # name -> displayed name

$textfield = textfield(              ### single-line text
   '-name'    => 'color3',           # field name
   '-default' => '');                # initially empty

$textarea = textarea(                ### Multi-line text
   '-name'    => 'color4',           # field name
   '-default' => '',                 # initially empty
   '-rows'    => 2,                  # two lines
   '-columns' => 20);                # 20 characters wide

$scrolling_list = scrolling_list(    ### scrollable list
   '-name'     =>  'color5',         # field name
   '-values'   =>  ['r', 'g', 'b'],  # selectable values
   '-default'  =>  ['r', 'g'],       # preselected
   '-size'     =>  3,                # height of box
   '-multiple' => 'true',            # multiple selection OK
   '-labels'   => \%labels);         # name -> displayed name

$checkbox_group = checkbox_group(    ### group of checkboxes
   '-name'      => 'color6',         # field name
   '-values'    =>  ['r', 'g', 'b'], # individual switch values
   '-default'   =>  'r',             # 1st switch pressed
   '-linebreak' => 'true',           # line up below each other
   '-labels'    => \%labels);        # name -> displayed name

$checkbox = checkbox(                ### single checkbox
   '-name'    => 'color7',           # field name
   '-checked' => 'checked',          # preselected
   '-value'   => 'yes',              # value if pressed
   '-label'   => 'Yes?');            # displayed text

$submit = submit(                    ### submit button
   '-name'  => 'submit_button',      # field name
   '-value' => 'Submit');            # legend and returned
                                     # value if pressed

$reset = reset(                      ### reset button
   '-value' => 'Reset');             # legend

print header(),                      # output everything in HTML
      start_html('-title'   => 'Sample form',
                 '-bgcolor' => '#e0e0e6'),

      start_form('-method' => 'GET', # start of form and action URL
                 '-action' => '/cgi-bin/dump.cgi'),
      
      table({'border' => 1},         # table of form elements
            TR(td(tt("popup_menu")), td($popup_menu)),
            TR(td(tt("radio_group")), td($radio_group)),
            TR(td(tt("textfield")), td($textfield)),
            TR(td(tt("textarea")), td($textarea)),
            TR(td(tt("scrolling_list")), td($scrolling_list)),
            TR(td(tt("checkbox_group")), td($checkbox_group)),
            TR(td(tt("checkbox")), td($checkbox)),
            TR(td(tt("submit")), td($submit)),
            TR(td(tt("reset")), td($reset)),
           ),
      end_form(),                    # end of form
      end_html();                    # end of HTML

