NAME
Class::DBI::AsForm - Produce HTML form elements for database columns
SYNOPSIS
package Music::CD;use Class::DBI::AsForm;use base 'Class::DBI';use CGI;...sub create_or_edit {my $class = shift;my %cgi_field = $class->to_cgi;return start_form,(map { "<b>$_</b>: ". $cgi_field{$_}->as_HTML." <br>" }$class->Columns),end_form;}# <form method="post"...># Title: <input type="text" name="Title" /> <br># Artist: <select name="Artist"># <option value=1>Grateful Dead</option># ...# </select># ...# </form>
DESCRIPTION
This module helps to generate HTML forms for creating new database rows or editing existing rows. It maps column names in a database table to HTML form elements which fit the schema. Large text fields are turned into textareas, and fields with a has-a relationship to other "Class::DBI" tables are turned into select drop-downs populated with objects from the joined class.
METHODS
The module is a mix-in which adds two additional methods to your "Class::DBI"-derived class.
to_cgi
This returns a hash mapping all the column names of the class to HTML::Element objects representing form widgets.
to_field($field [, $how])
This maps an individual column to a form element. The "how" argument can be used to force the field type into one of "textfield", "textarea" or "select"; you can use this is you want to avoid the automatic detection of has-a relationships.
CHANGES
Version 1.x of this module returned raw HTML instead of "HTML::Element" objects, which made it harder to manipulate the HTML before sending it out. If you depend on the old behaviour, set $Class::DBI::AsForm::OLD_STYLE to a true value.
MAINTAINER
Tony Bowden
ORIGINAL AUTHOR
Simon Cozens
BUGS and QUERIES
Please direct all correspondence regarding this module to:
[email protected]
COPYRIGHT AND LICENSE
Copyright 2003-2004 by Simon Cozens / Tony Bowden
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
Class::DBI, Class::DBI::FromCGI, HTML::Element.