<%doc> Example: include( '/elements/select-table.html', ## # required ## 'table' => 'table_name', 'name_col' => 'name_column', #or method if you pass an order_by #strongly recommended (you want your forms to be "sticky" on errors, right?) 'curr_value' => 'current_value', #'value' => #deprecated form of 'curr_value', ## # optional ## #search params 'hashref' => {}, 'addl_from' => '', 'extra_sql' => '', 'agent_virt' => 0, #set true and make sure the result is JOINed to #something with agentnum (usually cust_main) 'agent_null' => 0, #set true to always show un-agented entries 'agent_null_right' => '', #right to see un-agented entries #or 'records' => \@records, #instead of search params 'presorted' => 0, #set true to disable sorting the records on name_col #instead of the primary key... only for special cases 'value_col' => 'columnname', #basic params controlling the resulting 'element_name' => '', #HTML element name, defaults to the name of # the primary key column 'field' => '', #synonym for element_name 'element_etc' => '', #additional attributes (i.e. "DISABLED") for the # NAME = "<% $opt{'element_name'} || $opt{'field'} || $key %>" ID = "<% $opt{'id'} || $key %>" <% $onchange %> <% $size %> <% $opt{'element_etc'} %> > % while ( @pre_options ) { % my $pre_opt = shift(@pre_options); % my $pre_label = shift(@pre_options); % my $selected = $opt{'all_selected'} % || ( ref($value) && $value->{$pre_opt} ) % || ( $value eq $pre_opt );