NAME

DBIx::Browse::CGI - Perl extension to browse tables with a CGI interface.


SYNOPSIS

  use DBIx::Browse::CGI;
  my ($dbh, $dbb, $q);
  $dbh = DBI->connect("DBI:Pg:dbname=enterprise")
    or croak "Can't connect to database: $@";
 $q   = new CGI;
 $dbb = new  DBIx::Browse::CGI({
    dbh => $dbh, 
    table => 'employee', 
    proper_fields => [ qw ( name fname ) ],
    linked_fields => [ qw ( department category office ) ], 
    linked_tables => [ qw ( department category office ) ], 
    linked_values => [ qw ( name       name     phone  ) ], 
    linked_refs   => [ qw ( id         id       ide    ) ],
    aliases       => [ qw ( name fname department category phone )],
    primary_key   => 'id',
    cgi           => $q
});
 print
    $q->start_html(
                   -title => "Test DBIx::Browse::CGI"
                   );
 $dbb->list_form({
    field_order  => [  1,  0,  4,  3,  2 ],
    field_length => [ 14, 15, 15, 15, 10 ]
 });

...etc


DESCRIPTION

The purpose of DBIx::Browse::CGI is to handle the browsing of relational tables with a human-like interface via Web.

DBIx::Browse::CGI transparently translates SELECTs, UPDATEs, DELETEs and INSERTs from the desired ``human view'' to the values needed for the table. This is the case when you have related tables (1 to n) where the detail table has a reference (FOREIGN KEY) to a generic table (i.e. Customers and Bills) with some index (tipically an integer).


METHODS

All the inherited methods inherited from its parent class (DBIX::Browse(3)) plus the following:

new
Creates a new DBIx::Browse::CGI object. The parameters are passed through a hash with the following added keys:
cgi
A CGI object that will be used for Web interaction. If it is not defined a new CGI object will be created.

max_rows
The maximum number of rows to be displayed per Web page (default: 10).

max_flength
The maximum field length to be displayed (also the default for unknown field lengths).

default_action
The default action (web page) that will be displayed if not set by the calling program (currently ``List'' or ``Edit''.

form_params
A hash ref containing other form parameters that will appear as ``HIDDEN'' input fields.

styles
An anonymous arrays of css styles (``CLASS'') that will be applied to succesive rows of output.

list_form
This method produces a CGI form suitable to explore the main table. It will list its rows in chunks of max_rows. It will present also the possibility to edit (see edit_register) any row and to filter the rows to display.

It takes one optional parameter with a hash reference with the following keys:

field_names
An array reference containing the field names to be displayed.

field_order
An array reference with the desired order index in wich the fields will appear.

field_length
An array reference with the desired field length.

edit_form
This method produces a CGI form suitable to browse the main table record by record. You can update, delete and insert new records.

It takes one optional parameter with a hash reference with the same structure than list_form.

browse
This method will call list_form or edit_form as needed depending on the user input.

It takes one optional parameter with a hash reference with the same structure than list_form.


AUTHOR

Evilio José del Río Silván, edelrio@icm.csic.es


SEE ALSO

perl(1), DBI(3), CGI(3), DBIx::Browse(3).