CGI-QuickForm

 view release on metacpan or  search on metacpan

eg/example2  view on Meta::CPAN

#!/usr/bin/perl -w

# $Id: quickform,v 1.13 2000/04/23 14:04:36 root Exp root $

# Copyright (c) Mark Summerfield 1999-2000. All Rights Reserved.
# May be used/distributed under the GPL.

# WARNING - this program is provided as an example of QuickForm use and not as
# an example of production quality CGI code - it may not be secure. 

use strict ;

use CGI qw( :standard :html3 ) ;
use CGI::QuickForm qw( show_form colour ) ;

my $STYLE_HEADLINE   = 'style="background-color:black;color:white;font-weight:bold"' ;

show_form(
    -MULTI_COLUMN     => 1, # MULTI_COLUMN
    -TITLE            => 'Test Form',
    -ACCEPT           => \&on_valid_form, 
    -SIZE             => 25,
    -SPACE            => 1,
    -CHECK            => ( query_string() =~ /QFCHK=0/o ? 0 : 1 ), 
    -FOOTER           => qq{<a href="} . 
                         url() . #"
                         qq{?QFCHK=0\&Age=28\&Surname=Bloggs\&Forename=Freda">} . #"
                         qq{Defaults</a>} . 
                         end_html,
    -BUTTONS          => [ { -name => 'Add' }, { -name => 'Del' } ],
    -STYLE_BUTTONS    => 'center',
    -STYLE_FIELDNAME  => 'style="background-color:#AAAAAA"',
    -STYLE_FIELDVALUE => 'style="background-color:#DDDDDD"', 
    -STYLE_WHY        => 'style="font-style:italic;color:red"',
    -STYLE_DESC       => 'style="color:darkblue"',
    -VALIDATE  => sub { ( int rand(2), "<P>" . colour( 'RED', 'Randomly Invalid' ) ) },
    -FIELDS           => [
        {
            -LABEL           => 'Personal Information',
            -END_ROW         => 1,
            -HEADLINE        => 1,
            -STYLE_FIELDNAME => $STYLE_HEADLINE,
            -COLSPAN         => 4,
        },
        {
            -LABEL      => 'Forename',
            -CLEAN      => \&cleanup, 
            -VALIDATE   => sub { 
                            my $valid = length shift > 3 ; 
                            ( $valid, '<br />Name too short' ) ;
                        }
        },
        {
            -LABEL      => 'Surname',
            -END_ROW    => 1, # MULTI_COLUMN
            -CLEAN      => \&cleanup, 
            -REQUIRED   => 1,
            -VALIDATE   => sub { 
                                my $valid = length shift > 3 ; 
                                ( $valid, '<br />Name too short' ) ;
                            }
        },
        {
            -LABEL      => 'Sex',
            -TYPE       => 'radio_group',
            '-values'   => [ qw( Female Male ) ],
        },
        {
            -LABEL      => 'Age',
            -END_ROW    => 1, # MULTI_COLUMN
            -VALIDATE   => &mk_valid_number( 3, 130 ), 
            -size       => 10,
        },
        { 
            -LABEL     => 'Hair colour', 
            -REQUIRED  => undef,



( run in 1.440 second using v1.01-cache-2.11-cpan-39bf76dae61 )