|
::Features
::Download
::Tutorial
::Examples
::Documentation ::Join the Mailing List ::List Archives ::Contribute |
|
NAMECGI::FormBuilder::Source::File - Initialize FormBuilder from external file
SYNOPSIS
# use the main module
use CGI::FormBuilder;
my $form = CGI::FormBuilder->new(source => 'form.conf');
my $lname = $form->field('lname'); # like normal
DESCRIPTIONThis parses a file that contains FormBuilder configuration options,
and returns a hash suitable for creating a new The configuration format steals from Python (ack!) which is sensitive to indentation and newlines. This saves you work in the long run. Here's a complete form:
# form basics
method: POST
header: 1
title: Account Information
# define fields
fields:
fname:
label: First Name
size: 40
minit:
label: Middle Initial
size: 1
lname:
label: Last Name
size: 60
email:
size: 80
phone:
label: Home Phone
comment: (optional)
required: 0
sex:
label: Gender
options: M=Male, F=Female
jsclick: javascript:alert('Change your mind??')
# custom options and sorting sub
state:
options: \&getstates
sortopts: \&sortstates
datafile:
label: Upload Survey Data
type: file
growable: 1
# validate our above fields
validate:
email: EMAIL
phone: /^1?-?\d{3}-?\d{3}-?\d{4}$/
required: ALL
# create two submit buttons, and skip validation on "Cancel"
submit: Update, Cancel
jsfunc: <<EOJS
// skip validation
if (this._submit.value == 'Cancel') return true;
EOJS
# CSS
styleclass: acctInfoForm
stylesheet: /style/acct.css
Any option that FormBuilder accepts is supported by this configuration file. Basically, any time that you would place a new bracket to create a nested data structure in FormBuilder, you put a newline and indent instead. Multiple options MUST be separated by commas. All whitespace is preserved intact, so don't be confused and do something like this:
fields:
send_me_emails:
options: Yes No
Which will result in a single ``Yes No'' option. You want:
fields:
send_me_emails:
options: Yes, No
Or even better:
fields:
send_me_emails:
options: 1=Yes, 0=No
Or perhaps best of all:
fields:
send_me_emails:
options: 1=Yes Please, 0=No Thanks
If you're confused, please join the mailing list:
fbusers-subscribe@formbuilder.org
We'll be able to help you out.
METHODS
|
| FormBuilder is © 2000-2006 Nate Wiger, with contributions from many people. |