[Catalyst] Formbuilder will not render
Dave Gethings
dgethings at me.com
Thu Mar 10 22:22:58 GMT 2011
Hi dudes and dudettes,
I'm new to Catalyst and am following the example set out in Chapter 3 of 'The Book' (I've bought the book but have only got this far). I have a problem with Formbuilder not rendering the form for editing an address. Editing a person works fine.
I've added some debug code to check that the formbuilder object is generated correctly (which it appears to be) however when I call the render method in the TT I do not get the form. Can you tell me what I'm doing wrong?
Below is the code needed for the form and an example output using the address_test.pl script:
# from lib/AddressBook/Controller/Address.pm
sub edit :Local Form {
my ($self, $c, $address_id, $person_id) = @_;
my $form = $self->formbuilder;
my $address;
$c->log->debug('$form = '. $form->render());
if (!$address_id && $person_id) {
# adding new address to existing person
my $person = $c->model('AddressDB::People')->find({id => $person_id});
if (!$person) {
$c->stash->{error} = 'No such person!';
$c->detach('/person/list');
}
$address = $c->model('AddressDB::Addresses')->new({person => $person});
}
else {
$address = $c->model('AddressDB::Addresses')->find({id => $address_id});
if (!$address) {
$c->stash->{error} = 'No such address!';
$c->detach('/person/list');
}
}
if ($form->submitted && $form->validate) {
# transfer data from form to database
$address->location($form->field('location'));
$address->postal ($form->field('postal') );
$address->phone ($form->field('phone') );
$address->email ($form->field('email') );
$address->insert_or_update;
$c->stash->{message} =
($address_id > 0 ? 'Updated ' : 'Added new ') . 'address for ' .
$address->person->name;
}
else {
# transfer data from database to form
$c->stash->{address} = $address;
if (!$address_id) {
$c->stash->{message} = 'Adding a new address ';
}
else {
$c->stash->{message} = 'Updating an address ';
}
$c->stash->{message} .= 'for ' . $address->person->name;
$form->field(name => 'location', value => $address->location);
$form->field(name => 'postal', value => $address->postal );
$form->field(name => 'phone', value => $address->phone );
$form->field(name => 'email', value => $address->email );
}
$c->detach('/person/list');
}
# from root/src/address/edit.tt2
[% META title = "Address" %]
<p>Here's some text explaining the form below. Only the "location" field is required, etc, etc.</p>
[% FormBuilder.render %]
# from root/forms/address/edit.fb
name: address_edit
method: POST
header: 1
title: Address
fields:
location:
label: Location
type: select
options: Home, Office, Mobile
other: 1
required: 1
postal:
label: Mailing Address
type: textarea
rows: 4
cols: 60
phone:
label: Phone Number
validate: PHONE
email:
label: E-Mail Address
validate: EMAIL
> ./script/addressbook_test.pl /address/add/2
[debug] Debug messages enabled
[debug] Statistics enabled
[debug] Loaded plugins:
.----------------------------------------------------------------------------.
| Catalyst::Plugin::ConfigLoader 0.30 |
'----------------------------------------------------------------------------'
[debug] Loaded dispatcher "Catalyst::Dispatcher"
[debug] Loaded engine "Catalyst::Engine::CGI"
[debug] Found home "/Users/dg/git/AddressBook"
[debug] Loaded Config "/Users/dg/git/AddressBook/addressbook.conf"
[debug] Loaded components:
.-----------------------------------------------------------------+----------.
| Class | Type |
+-----------------------------------------------------------------+----------+
| AddressBook::Controller::Address | instance |
| AddressBook::Controller::Person | instance |
| AddressBook::Controller::Root | instance |
| AddressBook::Model::AddressDB | instance |
| AddressBook::Model::AddressDB::Addresses | class |
| AddressBook::Model::AddressDB::People | class |
| AddressBook::View::HTML | instance |
'-----------------------------------------------------------------+----------'
[debug] Loaded Private actions:
.----------------------+--------------------------------------+--------------.
| Private | Class | Method |
+----------------------+--------------------------------------+--------------+
| /default | AddressBook::Controller::Root | default |
| /end | AddressBook::Controller::Root | end |
| /index | AddressBook::Controller::Root | index |
| /person/add | AddressBook::Controller::Person | add |
| /person/edit | AddressBook::Controller::Person | edit |
| /person/index | AddressBook::Controller::Person | index |
| /person/delete | AddressBook::Controller::Person | delete |
| /person/list | AddressBook::Controller::Person | list |
| /address/index | AddressBook::Controller::Address | index |
| /address/add | AddressBook::Controller::Address | add |
| /address/delete | AddressBook::Controller::Address | delete |
| /address/edit | AddressBook::Controller::Address | edit |
'----------------------+--------------------------------------+--------------'
[debug] Loaded Path actions:
.-------------------------------------+--------------------------------------.
| Path | Private |
+-------------------------------------+--------------------------------------+
| / | /index |
| / | /default |
| /address | /address/index |
| /address/add | /address/add |
| /address/delete | /address/delete |
| /address/edit | /address/edit |
| /person | /person/index |
| /person/add | /person/add |
| /person/delete | /person/delete |
| /person/edit | /person/edit |
| /person/list | /person/list |
'-------------------------------------+--------------------------------------'
[info] AddressBook powered by Catalyst 5.80029
[CGI::FormBuilder::Messages::new] (debug1) creating Messages object from (default)
[CGI::FormBuilder::new] (debug1) creating fields list
[CGI::FormBuilder::new] (debug2) assuming fields list from ARRAY
[CGI::FormBuilder::new_field] (debug1) called $form->new_field(location)
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{cleanopts} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{sticky} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{selectname} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{selectnum} = 5;
[CGI::FormBuilder::new_field] (debug1) created field location
[CGI::FormBuilder::new] (debug2) push @(), location
[CGI::FormBuilder::new_field] (debug1) called $form->new_field(postal)
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{cleanopts} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{sticky} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{selectname} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{selectnum} = 5;
[CGI::FormBuilder::new_field] (debug1) created field postal
[CGI::FormBuilder::new] (debug2) push @(location), postal
[CGI::FormBuilder::new_field] (debug1) called $form->new_field(phone)
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{cleanopts} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{sticky} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{selectname} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{selectnum} = 5;
[CGI::FormBuilder::new_field] (debug1) created field phone
[CGI::FormBuilder::new] (debug2) push @(location postal), phone
[CGI::FormBuilder::new_field] (debug1) called $form->new_field(email)
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{cleanopts} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{sticky} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{selectname} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{selectnum} = 5;
[CGI::FormBuilder::new_field] (debug1) created field email
[CGI::FormBuilder::new] (debug2) push @(location postal phone), email
[CGI::FormBuilder::new] (debug1) field creation done, list = (location postal phone email)
[CGI::FormBuilder::Source::File::parse] (debug1) parsing /Users/dg/git/AddressBook/root/forms/address/edit.fb as input source
[CGI::FormBuilder::Source::File::parse] (debug2) [1 >= 0, inval=0] term=name; line=address_edit
[CGI::FormBuilder::Source::File::parse] (debug2) name = address_edit (1 < 1)
[CGI::FormBuilder::Source::File::parse] (debug2) [1 >= 1, inval=0] term=method; line=POST
[CGI::FormBuilder::Source::File::parse] (debug2) method = POST (1 < 1)
[CGI::FormBuilder::Source::File::parse] (debug2) [1 >= 1, inval=0] term=header; line=1
[CGI::FormBuilder::Source::File::parse] (debug2) header = 1 (1 < 1)
[CGI::FormBuilder::Source::File::parse] (debug2) [1 >= 1, inval=0] term=title; line=Address
[CGI::FormBuilder::Source::File::parse] (debug2) title = Address (1 < 1)
[CGI::FormBuilder::Source::File::parse] (debug2) [1 >= 1, inval=0] term=fields; line=
[CGI::FormBuilder::Source::File::parse] (debug2) fields: new level (1 < 1)
[CGI::FormBuilder::Source::File::parse] (debug2) [3 >= 1, inval=0] term=location; line=
[CGI::FormBuilder::Source::File::parse] (debug2) location: new level (3 < 1)
[CGI::FormBuilder::Source::File::parse] (debug2) [5 >= 3, inval=0] term=label; line=Location
[CGI::FormBuilder::Source::File::parse] (debug2) label = Location (5 < 3)
[CGI::FormBuilder::Source::File::parse] (debug2) [5 >= 5, inval=1] term=type; line=select
[CGI::FormBuilder::Source::File::parse] (debug2) type = select (5 < 3)
[CGI::FormBuilder::Source::File::parse] (debug2) [5 >= 5, inval=1] term=options; line=Home, Office, Mobile
[CGI::FormBuilder::Source::File::parse] (debug2) options = Home, Office, Mobile (5 < 3)
[CGI::FormBuilder::Source::File::parse] (debug2) [5 >= 5, inval=1] term=other; line=1
[CGI::FormBuilder::Source::File::parse] (debug2) other = 1 (5 < 3)
[CGI::FormBuilder::Source::File::parse] (debug2) [5 >= 5, inval=1] term=required; line=1
[CGI::FormBuilder::Source::File::parse] (debug2) required = 1 (5 < 3)
[CGI::FormBuilder::Source::File::parse] (debug2) [3 >= 5, inval=0] term=postal; line=
[CGI::FormBuilder::Source::File::parse] (debug2) postal: new level (3 < 3)
[CGI::FormBuilder::Source::File::parse] (debug2) [5 >= 3, inval=0] term=label; line=Mailing Address
[CGI::FormBuilder::Source::File::parse] (debug2) label = Mailing Address (5 < 3)
[CGI::FormBuilder::Source::File::parse] (debug2) [5 >= 5, inval=1] term=type; line=textarea
[CGI::FormBuilder::Source::File::parse] (debug2) type = textarea (5 < 3)
[CGI::FormBuilder::Source::File::parse] (debug2) [5 >= 5, inval=1] term=rows; line=4
[CGI::FormBuilder::Source::File::parse] (debug2) rows = 4 (5 < 3)
[CGI::FormBuilder::Source::File::parse] (debug2) [5 >= 5, inval=1] term=cols; line=60
[CGI::FormBuilder::Source::File::parse] (debug2) cols = 60 (5 < 3)
[CGI::FormBuilder::Source::File::parse] (debug2) [3 >= 5, inval=0] term=phone; line=
[CGI::FormBuilder::Source::File::parse] (debug2) phone: new level (3 < 3)
[CGI::FormBuilder::Source::File::parse] (debug2) [5 >= 3, inval=0] term=label; line=Phone Number
[CGI::FormBuilder::Source::File::parse] (debug2) label = Phone Number (5 < 3)
[CGI::FormBuilder::Source::File::parse] (debug2) [5 >= 5, inval=1] term=validate; line=PHONE
[CGI::FormBuilder::Source::File::parse] (debug2) validate = PHONE (5 < 3)
[CGI::FormBuilder::Source::File::parse] (debug2) [3 >= 5, inval=0] term=email; line=
[CGI::FormBuilder::Source::File::parse] (debug2) email: new level (3 < 3)
[CGI::FormBuilder::Source::File::parse] (debug2) [5 >= 3, inval=0] term=label; line=E-Mail Address
[CGI::FormBuilder::Source::File::parse] (debug2) label = E-Mail Address (5 < 3)
[CGI::FormBuilder::Source::File::parse] (debug2) [5 >= 5, inval=1] term=validate; line=EMAIL
[CGI::FormBuilder::Source::File::parse] (debug2) validate = EMAIL (5 < 3)
[CGI::FormBuilder::new] (debug1) constructing new FormBuilder object
[CGI::FormBuilder::Messages::new] (debug1) creating Messages object from (default)
[CGI::FormBuilder::new] (debug1) creating fields list
[CGI::FormBuilder::new] (debug2) assuming fields list from ARRAY
[CGI::FormBuilder::new_field] (debug1) called $form->new_field(location)
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{cleanopts} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{sticky} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{selectname} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{selectnum} = 5;
[CGI::FormBuilder::new_field] (debug1) created field location
[CGI::FormBuilder::new] (debug2) push @(), location
[CGI::FormBuilder::new_field] (debug1) called $form->new_field(postal)
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{cleanopts} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{sticky} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{selectname} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{selectnum} = 5;
[CGI::FormBuilder::new_field] (debug1) created field postal
[CGI::FormBuilder::new] (debug2) push @(location), postal
[CGI::FormBuilder::new_field] (debug1) called $form->new_field(phone)
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{cleanopts} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{sticky} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{selectname} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{selectnum} = 5;
[CGI::FormBuilder::new_field] (debug1) created field phone
[CGI::FormBuilder::new] (debug2) push @(location postal), phone
[CGI::FormBuilder::new_field] (debug1) called $form->new_field(email)
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{cleanopts} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{sticky} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{selectname} = 1;
[CGI::FormBuilder::new_field] (debug2) rearrange: $args->{selectnum} = 5;
[CGI::FormBuilder::new_field] (debug1) created field email
[CGI::FormBuilder::new] (debug2) push @(location postal phone), email
[CGI::FormBuilder::new] (debug1) field creation done, list = (location postal phone email)
[CGI::FormBuilder::render] (debug1) starting $form->render()
[CGI::FormBuilder::prepare] (debug1) Calling $form->prepare()
[CGI::FormBuilder::field] (debug2) called $form->field()
[CGI::FormBuilder::field] (debug2) return (location postal phone email)
[CGI::FormBuilder::Field::tag_value] (debug2) location: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) location: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) location: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) location: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) location: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) location: called $field->inflate_value
[CGI::FormBuilder::Field::type] (debug2) location: called $field->type (manual = 'select')
[CGI::FormBuilder::Field::type] (debug1) location: field set to type 'select' (reblessing)
[CGI::FormBuilder::Field::tag_value] (debug2) location: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) location: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) location: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) location: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) location: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) location: called $field->inflate_value
[CGI::FormBuilder::Field::type] (debug2) location: called $field->type (manual = 'select')
[CGI::FormBuilder::Field::tag_value] (debug2) location: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) location: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) location: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) location: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) location: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) location: called $field->inflate_value
[CGI::FormBuilder::Field::select::tag] (debug2) my(Home Office Mobile) = $field->options
[CGI::FormBuilder::Field::select::tag] (debug2) location: generating select input type
[CGI::FormBuilder::Field::tag_value] (debug2) location: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) location: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) location: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) location: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) location: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) location: called $field->inflate_value
[CGI::FormBuilder::Field::select::tag] (debug2) location: rendering options: (ARRAY(0x10343cfb8) Home Office Mobile ARRAY(0x10343cfd0))
[CGI::FormBuilder::Field::select::tag] (debug2) optval(ARRAY(0x10343cfb8)) = (,-select-,)
[CGI::FormBuilder::Field::select::tag] (debug2) location: tag .= option -select-
[CGI::FormBuilder::Field::select::tag] (debug2) optval(Home) = (Home,,)
[CGI::FormBuilder::Field::select::tag] (debug2) location: tag .= option Home
[CGI::FormBuilder::Field::select::tag] (debug2) optval(Office) = (Office,,)
[CGI::FormBuilder::Field::select::tag] (debug2) location: tag .= option Office
[CGI::FormBuilder::Field::select::tag] (debug2) optval(Mobile) = (Mobile,,)
[CGI::FormBuilder::Field::select::tag] (debug2) location: tag .= option Mobile
[CGI::FormBuilder::Field::select::tag] (debug2) optval(ARRAY(0x10343cfd0)) = (_other_location,Other:,)
[CGI::FormBuilder::Field::select::tag] (debug2) location: tag .= option Other:
[CGI::FormBuilder::Field::select::tag] (debug2) location: generated tag = <select id="location" name="location" onchange="if (this.selectedIndex + 1 == this.options.length) { fb_other_on('_other_location') } else { fb_other_off('_other_location') }">
<option value="">-select-</option>
<option value="Home">Home</option>
<option value="Office">Office</option>
<option value="Mobile">Mobile</option>
<option value="_other_location">Other:</option>
</select> <input disabled="disabled" id="_other_location" name="_other_location" type="text" />
[CGI::FormBuilder::Field::type] (debug2) location: called $field->type (manual = 'select')
[CGI::FormBuilder::Field::tag_value] (debug2) postal: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) postal: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) postal: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) postal: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) postal: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) postal: called $field->inflate_value
[CGI::FormBuilder::Field::type] (debug2) postal: called $field->type (manual = 'textarea')
[CGI::FormBuilder::Field::type] (debug1) postal: field set to type 'textarea' (reblessing)
[CGI::FormBuilder::Field::tag_value] (debug2) postal: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) postal: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) postal: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) postal: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) postal: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) postal: called $field->inflate_value
[CGI::FormBuilder::Field::tag_value] (debug2) postal: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) postal: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) postal: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) postal: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) postal: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) postal: called $field->inflate_value
[CGI::FormBuilder::Field::textarea::tag] (debug2) postal: generated tag = <textarea cols="60" id="postal" name="postal" rows="4"></textarea>
[CGI::FormBuilder::Field::type] (debug2) postal: called $field->type (manual = 'textarea')
[CGI::FormBuilder::Field::tag_value] (debug2) phone: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) phone: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) phone: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) phone: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) phone: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) phone: called $field->inflate_value
[CGI::FormBuilder::Field::type] (debug2) phone: called $field->type (manual = '')
[CGI::FormBuilder::Field::type] (debug1) phone: input type not set, checking for options
[CGI::FormBuilder::Field::type] (debug2) no options found
[CGI::FormBuilder::Field::type] (debug1) phone: field set to type 'text' (reblessing)
[CGI::FormBuilder::Field::type] (debug2) phone: called $field->type (manual = '')
[CGI::FormBuilder::Field::tag_value] (debug2) phone: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) phone: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) phone: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) phone: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) phone: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) phone: called $field->inflate_value
[CGI::FormBuilder::Field::tag_value] (debug2) phone: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) phone: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) phone: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) phone: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) phone: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) phone: called $field->inflate_value
[CGI::FormBuilder::Field::text::tag] (debug2) my() = $field->options
[CGI::FormBuilder::Field::text::tag] (debug2) phone: generating text input type
[CGI::FormBuilder::Field::text::tag] (debug2) phone: generated tag = <input id="phone" name="phone" type="text" />
[CGI::FormBuilder::Field::type] (debug2) phone: called $field->type (manual = '')
[CGI::FormBuilder::Field::tag_value] (debug2) email: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) email: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) email: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) email: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) email: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) email: called $field->inflate_value
[CGI::FormBuilder::Field::type] (debug2) email: called $field->type (manual = '')
[CGI::FormBuilder::Field::type] (debug1) email: input type not set, checking for options
[CGI::FormBuilder::Field::type] (debug2) no options found
[CGI::FormBuilder::Field::type] (debug1) email: field set to type 'text' (reblessing)
[CGI::FormBuilder::Field::type] (debug2) email: called $field->type (manual = '')
[CGI::FormBuilder::Field::tag_value] (debug2) email: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) email: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) email: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) email: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) email: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) email: called $field->inflate_value
[CGI::FormBuilder::Field::tag_value] (debug2) email: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) email: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) email: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) email: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) email: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) email: called $field->inflate_value
[CGI::FormBuilder::Field::text::tag] (debug2) my() = $field->options
[CGI::FormBuilder::Field::text::tag] (debug2) email: generating text input type
[CGI::FormBuilder::Field::text::tag] (debug2) email: generated tag = <input id="email" name="email" type="text" />
[CGI::FormBuilder::Field::type] (debug2) email: called $field->type (manual = '')
[CGI::FormBuilder::prepare] (debug2) $tmplvar{jshead} = $self->script
[CGI::FormBuilder::field] (debug2) called $form->field()
[CGI::FormBuilder::field] (debug2) return (location postal phone email)
[CGI::FormBuilder::field] (debug2) called $form->field()
[CGI::FormBuilder::field] (debug2) return (location postal phone email)
[CGI::FormBuilder::field] (debug2) called $form->field()
[CGI::FormBuilder::field] (debug2) return (location postal phone email)
[CGI::FormBuilder::Field::type] (debug2) location: called $field->type (manual = 'select')
[CGI::FormBuilder::Field::jsfield] (debug2) return '' unless auto && ( || 1)
[CGI::FormBuilder::Field::jsfield] (debug1) location: generating JavaScript validation code
[CGI::FormBuilder::Field::type] (debug2) location: called $field->type (manual = 'select')
[CGI::FormBuilder::Field::type] (debug2) postal: called $field->type (manual = 'textarea')
[CGI::FormBuilder::Field::jsfield] (debug2) return '' unless auto && ( || )
[CGI::FormBuilder::Field::type] (debug2) phone: called $field->type (manual = '')
[CGI::FormBuilder::Field::jsfield] (debug2) return '' unless auto && (PHONE || )
[CGI::FormBuilder::Field::jsfield] (debug1) phone: generating JavaScript validation code
[CGI::FormBuilder::Field::type] (debug2) phone: called $field->type (manual = '')
[CGI::FormBuilder::Field::type] (debug2) email: called $field->type (manual = '')
[CGI::FormBuilder::Field::jsfield] (debug2) return '' unless auto && (EMAIL || )
[CGI::FormBuilder::Field::jsfield] (debug1) email: generating JavaScript validation code
[CGI::FormBuilder::Field::type] (debug2) email: called $field->type (manual = '')
[CGI::FormBuilder::prepare] (debug2) $tmplvar{title} = $self->title
[CGI::FormBuilder::prepare] (debug2) $tmplvar{start} = $self->start . $self->statetags . $self->keepextras
[CGI::FormBuilder::prepare] (debug2) $tmplvar{submit} = $self->submit
[CGI::FormBuilder::prepare] (debug2) $tmplvar{reset} = $self->reset
[CGI::FormBuilder::prepare] (debug2) $tmplvar{end} = $self->end
[CGI::FormBuilder::prepare] (debug2) $tmplvar{invalid} = $self->invalid
[CGI::FormBuilder::prepare] (debug2) $tmplvar{required} = $self->required
[CGI::FormBuilder::prepare] (debug2) $tmplvar{fields} = [ map $tmplvar{field}{$_}, $self->field ]
[CGI::FormBuilder::field] (debug2) called $form->field()
[CGI::FormBuilder::field] (debug2) return (location postal phone email)
[CGI::FormBuilder::render] (debug1) loading CGI::FormBuilder::Template::Builtin for 'template' option
[CGI::FormBuilder::field] (debug2) called $form->field()
[CGI::FormBuilder::field] (debug2) return (location postal phone email)
[CGI::FormBuilder::field] (debug2) called $form->field()
[CGI::FormBuilder::field] (debug2) return (location postal phone email)
[CGI::FormBuilder::field] (debug2) called $form->field()
[CGI::FormBuilder::field] (debug2) return (location postal phone email)
[CGI::FormBuilder::Field::type] (debug2) location: called $field->type (manual = 'select')
[CGI::FormBuilder::Field::jsfield] (debug2) return '' unless auto && ( || 1)
[CGI::FormBuilder::Field::jsfield] (debug1) location: generating JavaScript validation code
[CGI::FormBuilder::Field::type] (debug2) location: called $field->type (manual = 'select')
[CGI::FormBuilder::Field::type] (debug2) postal: called $field->type (manual = 'textarea')
[CGI::FormBuilder::Field::jsfield] (debug2) return '' unless auto && ( || )
[CGI::FormBuilder::Field::type] (debug2) phone: called $field->type (manual = '')
[CGI::FormBuilder::Field::jsfield] (debug2) return '' unless auto && (PHONE || )
[CGI::FormBuilder::Field::jsfield] (debug1) phone: generating JavaScript validation code
[CGI::FormBuilder::Field::type] (debug2) phone: called $field->type (manual = '')
[CGI::FormBuilder::Field::type] (debug2) email: called $field->type (manual = '')
[CGI::FormBuilder::Field::jsfield] (debug2) return '' unless auto && (EMAIL || )
[CGI::FormBuilder::Field::jsfield] (debug1) email: generating JavaScript validation code
[CGI::FormBuilder::Field::type] (debug2) email: called $field->type (manual = '')
[CGI::FormBuilder::field] (debug2) called $form->field()
[CGI::FormBuilder::field] (debug2) return (location postal phone email)
[CGI::FormBuilder::field] (debug2) called $form->field()
[CGI::FormBuilder::field] (debug2) return (location postal phone email)
[CGI::FormBuilder::fieldsets] (debug2) added fieldset (legend=) to @sets
[CGI::FormBuilder::field] (debug2) called $form->field()
[CGI::FormBuilder::field] (debug2) return (location postal phone email)
[CGI::FormBuilder::fieldlist] (debug2) appended non-fieldset field location to form
[CGI::FormBuilder::fieldlist] (debug2) appended non-fieldset field postal to form
[CGI::FormBuilder::fieldlist] (debug2) appended non-fieldset field phone to form
[CGI::FormBuilder::fieldlist] (debug2) appended non-fieldset field email to form
[CGI::FormBuilder::Field::type] (debug2) location: called $field->type (manual = 'select')
[CGI::FormBuilder::Field::type] (debug2) postal: called $field->type (manual = 'textarea')
[CGI::FormBuilder::Field::type] (debug2) phone: called $field->type (manual = '')
[CGI::FormBuilder::Field::type] (debug2) email: called $field->type (manual = '')
[CGI::FormBuilder::fieldsets] (debug2) added fieldset (legend=) to @sets
[CGI::FormBuilder::field] (debug2) called $form->field()
[CGI::FormBuilder::field] (debug2) return (location postal phone email)
[CGI::FormBuilder::Template::Builtin::prepare] (debug2) render: attacking normal field 'location'
[CGI::FormBuilder::Field::tag_value] (debug2) location: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) location: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) location: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) location: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) location: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) location: called $field->inflate_value
[CGI::FormBuilder::Field::tag_value] (debug2) location: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) location: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) location: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) location: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) location: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) location: called $field->inflate_value
[CGI::FormBuilder::Field::select::tag] (debug2) my(Home Office Mobile) = $field->options
[CGI::FormBuilder::Field::select::tag] (debug2) location: generating select input type
[CGI::FormBuilder::Field::tag_value] (debug2) location: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) location: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) location: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) location: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) location: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) location: called $field->inflate_value
[CGI::FormBuilder::Field::select::tag] (debug2) location: rendering options: (ARRAY(0x102529858) Home Office Mobile ARRAY(0x1025332a0))
[CGI::FormBuilder::Field::select::tag] (debug2) optval(ARRAY(0x102529858)) = (,-select-,)
[CGI::FormBuilder::Field::select::tag] (debug2) location: tag .= option -select-
[CGI::FormBuilder::Field::select::tag] (debug2) optval(Home) = (Home,,)
[CGI::FormBuilder::Field::select::tag] (debug2) location: tag .= option Home
[CGI::FormBuilder::Field::select::tag] (debug2) optval(Office) = (Office,,)
[CGI::FormBuilder::Field::select::tag] (debug2) location: tag .= option Office
[CGI::FormBuilder::Field::select::tag] (debug2) optval(Mobile) = (Mobile,,)
[CGI::FormBuilder::Field::select::tag] (debug2) location: tag .= option Mobile
[CGI::FormBuilder::Field::select::tag] (debug2) optval(ARRAY(0x1025332a0)) = (_other_location,Other:,)
[CGI::FormBuilder::Field::select::tag] (debug2) location: tag .= option Other:
[CGI::FormBuilder::Field::select::tag] (debug2) location: generated tag = <select id="location" name="location" onchange="if (this.selectedIndex + 1 == this.options.length) { fb_other_on('_other_location') } else { fb_other_off('_other_location') }">
<option value="">-select-</option>
<option value="Home">Home</option>
<option value="Office">Office</option>
<option value="Mobile">Mobile</option>
<option value="_other_location">Other:</option>
</select> <input disabled="disabled" id="_other_location" name="_other_location" type="text" />
[CGI::FormBuilder::Template::Builtin::prepare] (debug2) render: attacking normal field 'postal'
[CGI::FormBuilder::Field::tag_value] (debug2) postal: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) postal: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) postal: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) postal: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) postal: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) postal: called $field->inflate_value
[CGI::FormBuilder::Field::tag_value] (debug2) postal: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) postal: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) postal: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) postal: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) postal: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) postal: called $field->inflate_value
[CGI::FormBuilder::Field::textarea::tag] (debug2) postal: generated tag = <textarea cols="60" id="postal" name="postal" rows="4"></textarea>
[CGI::FormBuilder::Template::Builtin::prepare] (debug2) render: attacking normal field 'phone'
[CGI::FormBuilder::Field::type] (debug2) phone: called $field->type (manual = '')
[CGI::FormBuilder::Field::tag_value] (debug2) phone: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) phone: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) phone: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) phone: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) phone: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) phone: called $field->inflate_value
[CGI::FormBuilder::Field::tag_value] (debug2) phone: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) phone: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) phone: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) phone: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) phone: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) phone: called $field->inflate_value
[CGI::FormBuilder::Field::text::tag] (debug2) my() = $field->options
[CGI::FormBuilder::Field::text::tag] (debug2) phone: generating text input type
[CGI::FormBuilder::Field::text::tag] (debug2) phone: generated tag = <input id="phone" name="phone" type="text" />
[CGI::FormBuilder::Template::Builtin::prepare] (debug2) render: attacking normal field 'email'
[CGI::FormBuilder::Field::type] (debug2) email: called $field->type (manual = '')
[CGI::FormBuilder::Field::tag_value] (debug2) email: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) email: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) email: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) email: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) email: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) email: called $field->inflate_value
[CGI::FormBuilder::Field::tag_value] (debug2) email: called $field->tag_value
[CGI::FormBuilder::Field::tag_value] (debug2) email: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) email: called $field->cgi_value
[CGI::FormBuilder::Field::tag_value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) email: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) email: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) email: called $field->inflate_value
[CGI::FormBuilder::Field::text::tag] (debug2) my() = $field->options
[CGI::FormBuilder::Field::text::tag] (debug2) email: generating text input type
[CGI::FormBuilder::Field::text::tag] (debug2) email: generated tag = <input id="email" name="email" type="text" />
[CGI::FormBuilder::render] (debug1) returning CGI::FormBuilder::Template::Builtin=HASH(0x1025388d0)->render(HASH(0x1024745a8))
[CGI::FormBuilder::field] (debug2) called $form->field(name location value )
[CGI::FormBuilder::field] (debug2) searching fields for 'location'
[CGI::FormBuilder::Field::value] (debug2) location: called $field->value()
[CGI::FormBuilder::Field::value] (debug2) location: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) location: called $field->cgi_value
[CGI::FormBuilder::Field::value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) location: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) location: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) location: called $field->inflate_value
[CGI::FormBuilder::field] (debug2) called $form->field(name postal value )
[CGI::FormBuilder::field] (debug2) searching fields for 'postal'
[CGI::FormBuilder::Field::value] (debug2) postal: called $field->value()
[CGI::FormBuilder::Field::value] (debug2) postal: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) postal: called $field->cgi_value
[CGI::FormBuilder::Field::value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) postal: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) postal: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) postal: called $field->inflate_value
[CGI::FormBuilder::field] (debug2) called $form->field(name phone value )
[CGI::FormBuilder::field] (debug2) searching fields for 'phone'
[CGI::FormBuilder::Field::value] (debug2) phone: called $field->value()
[CGI::FormBuilder::Field::value] (debug2) phone: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) phone: called $field->cgi_value
[CGI::FormBuilder::Field::value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) phone: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) phone: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) phone: called $field->inflate_value
[CGI::FormBuilder::field] (debug2) called $form->field(name email value )
[CGI::FormBuilder::field] (debug2) searching fields for 'email'
[CGI::FormBuilder::Field::value] (debug2) email: called $field->value()
[CGI::FormBuilder::Field::value] (debug2) email: sticky && ! force
[CGI::FormBuilder::Field::cgi_value] (debug2) email: called $field->cgi_value
[CGI::FormBuilder::Field::value] (debug2) no cgi found, returning def_value
[CGI::FormBuilder::Field::def_value] (debug2) email: called $field->def_value
[CGI::FormBuilder::Field::def_value] (debug2) email: def value = ()
[CGI::FormBuilder::Field::inflate_value] (debug2) email: called $field->inflate_value
[info] *** Request 1 (1.000/s) [6881] [Thu Mar 10 22:13:39 2011] ***
[debug] "GET" request for "address/add/2" from "127.0.0.1"
[debug] Path is "address/add"
[debug] Arguments are "2"
[debug] Form (address/edit): Looking for config file address/edit.fb
[debug] Form (address/edit): Found form config /Users/dg/git/AddressBook/root/forms/address/edit.fb
[debug] Form (address/edit): Looking for config file address/edit.fb
[debug] Form (address/edit): Found form config /Users/dg/git/AddressBook/root/forms/address/edit.fb
[debug] $form = <script type="text/javascript"><!-- hide from old browsers
// turn on/off any "other"fields
function fb_other_on (othername) {
var box = document.getElementById(othername);
box.removeAttribute('disabled');
}
function fb_other_off (othername) {
var box = document.getElementById(othername);
box.setAttribute('disabled', 'disabled');
}
function validate_address_edit (form) {
var alertstr = '';
var invalid = 0;
var invalid_fields = new Array();
// location: select list, always assume it's multiple to get all values
var location = null;
var selected_location = 0;
for (var loop = 0; loop < form.elements['location'].options.length; loop++) {
if (form.elements['location'].options[loop].selected) {
location = form.elements['location'].options[loop].value;
selected_location++;
if (location == '_other_location') location = form.elements['_other_location'].value;
if (location == null || location === "") {
alertstr += '- Invalid entry for the "Location" field\n';
invalid++;
invalid_fields.push('location');
}
} // if
} // for location
if (! selected_location) {
alertstr += '- Invalid entry for the "Location" field\n';
invalid++;
}
// phone: standard text, hidden, password, or textarea box
var phone = form.elements['phone'].value;
if (phone != null && phone != "" && ! phone.match(/^\d{3}\-\d{3}\-\d{4}$|^\(\d{3}\)\s+\d{3}\-\d{4}$/)) {
alertstr += '- Invalid entry for the "Phone Number" field\n';
invalid++;
invalid_fields.push('phone');
}
// email: standard text, hidden, password, or textarea box
var email = form.elements['email'].value;
if (email != null && email != "" && ! email.match(/^[\w\-\+\._]+\@[a-zA-Z0-9][-a-zA-Z0-9\.]*\.[a-zA-Z]+$/)) {
alertstr += '- Invalid entry for the "E-Mail Address" field\n';
invalid++;
invalid_fields.push('email');
}
if (invalid > 0 || alertstr != '') {
if (! invalid) invalid = 'The following'; // catch for programmer error
alert(''+invalid+' error(s) were encountered with your submission:'+'\n\n'
+alertstr+'\n'+'Please correct these fields and try again.');
return false;
}
return true; // all checked ok
}
//-->
</script>
<noscript><font color="#cc0000"><b>Please enable Javascript or use a newer browser.</b></font></noscript>
<p>Fields that are <b>highlighted</b> are required.</p>
<!-- Generated by CGI::FormBuilder v3.0501 available from www.formbuilder.org -->
<form action="/address/add/2" id="address_edit" method="post" name="address_edit" onsubmit="return validate_address_edit(this);">
<div id="address_edit_state"><input id="_submitted_address_edit" name="_submitted_address_edit" type="hidden" value="1" /></div>
<table id="address_edit_body">
<tr id="address_edit_location_row" valign="top">
<td id="address_edit_location_label"><b>Location</b></td>
<td id="address_edit_location_field"><select id="location" name="location" onchange="if (this.selectedIndex + 1 == this.options.length) { fb_other_on('_other_location') } else { fb_other_off('_other_location') }">
<option value="">-select-</option>
<option value="Home">Home</option>
<option value="Office">Office</option>
<option value="Mobile">Mobile</option>
<option value="_other_location">Other:</option>
</select> <input disabled="disabled" id="_other_location" name="_other_location" type="text" /></td>
</tr>
<tr id="address_edit_postal_row" valign="top">
<td id="address_edit_postal_label">Mailing Address</td>
<td id="address_edit_postal_field"><textarea cols="60" id="postal" name="postal" rows="4"></textarea></td>
</tr>
<tr id="address_edit_phone_row" valign="top">
<td id="address_edit_phone_label">Phone Number</td>
<td id="address_edit_phone_field"><input id="phone" name="phone" type="text" /></td>
</tr>
<tr id="address_edit_email_row" valign="top">
<td id="address_edit_email_label">E-Mail Address</td>
<td id="address_edit_email_field"><input id="email" name="email" type="text" /></td>
</tr>
<tr id="address_edit_submit_row" valign="top">
<td align="center" colspan="2" id="address_edit_submit_field"><input id="address_edit_submit" name="_submit" type="submit" value="Submit" /></td>
</tr>
</table>
</form>
[debug] Rendering template "address/edit.tt2"
[debug] Response Code: 200; Content-Type: text/html; charset=utf-8; Content-Length: 1188
[info] Request took 0.413933s (2.416/s)
.------------------------------------------------------------+-----------.
| Action | Time |
+------------------------------------------------------------+-----------+
| /address/add | 0.359529s |
| /address/edit | 0.353808s |
| -> /person/list | 0.000526s |
| /end | 0.051051s |
| -> AddressBook::View::HTML->process | 0.050243s |
'------------------------------------------------------------+-----------'
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Address</title>
<style type="text/css">
html {
height: 100%;
}
body {
background-color: #ffffff;
color: #46494c;
margin: 0px;
padding: 0px;
height: 100%;
}
#header {
background-color: #e3e6ea;
border-bottom: 1px solid #f08900;
}
#footer {
background-color: #e3e6ea;
text-align: center;
border-top: 1px solid #f08900;
position: absolute;
bottom: 0;
left: 0px;
width: 100%;
padding: 4px;
}
#content {
padding: 10px;
}
h1.title {
padding: 4px;
margin: 0px;
}
.message {
color: #66AA66;
}
.error {
color: #CC4444;
}
</style>
</head>
<body>
<div id="header"><!-- BEGIN site/header -->
<h1 class="title">Address</h1>
<!-- END site/header -->
</div>
<div id="content">
<p><span class="message">Adding a new address for willy wonka</span></p>
<p>Here's some text explaining the form below. Only the "location" field is required, etc, etc.</p>
</div>
<div id="footer"><!-- BEGIN site/footer -->
<div id="copyright">© 2011 Your Name Here</div>
<!-- END site/footer -->
</div>
</body>
</html>
--
Cheers
Dg
More information about the Catalyst
mailing list