| Embperl documentation | Contained in the Embperl distribution. |
Embperl::Form::Control::inputjoin - A number of text input controls inside an Embperl Form
{
type => 'input',
text => 'blabla',
name => 'foo',
size => 10,
maxlength => 50,
numinputs => 4
}
Used to create a number of input control inside an Embperl Form, which contents are joined. See Embperl::Form on how to specify parameters.
Needs to be 'input'
Specifies the name of the control
Will be used as label for the text input control
Gives the size in characters
Gives the maximum possible input length in characters
Alternative CSS class name
Number of input boxes
Strings which is used to join the input fields
Regex which is used to split the data into the input fields. Default is /join/
String to display between the input boxes
G. Richter (richter@dev.ecos.de)
perl(1), Embperl, Embperl::Form
| Embperl documentation | Contained in the Embperl distribution. |
################################################################################### # # Embperl - Copyright (c) 1997-2010 Gerald Richter / ecos gmbh www.ecos.de # # You may distribute under the terms of either the GNU General Public # License or the Artistic License, as specified in the Perl README file. # # THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED # WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. # # $Id$ # ################################################################################### package Embperl::Form::Control::inputjoin ; use strict ; use base 'Embperl::Form::Control' ; use Embperl::Inline ; use vars qw{%fdat} ; # ------------------------------------------------------------------------------------------ # # init_data - daten aufteilen # sub init_data { my ($self, $req) = @_ ; my $name = $self -> {name} ; my $split = $self -> {split} || $self -> {join} ; my $num = $self -> {numinputs} || 1 ; my $i = 0 ; my @vals = split /$split/, $fdat{$name} ; for (my $i = 0; $i < $num; $i++) { $fdat{"$name-_-$i"} = $vals[$i] ; } } # ------------------------------------------------------------------------------------------ # # prepare_fdat - daten zusammenfuehren # sub prepare_fdat { my ($self, $req) = @_ ; my $name = $self -> {name} ; my $join = $self -> {join} ; my $num = $self -> {numinputs} || 1 ; my @vals ; for (my $i = 0; $i < $num; $i++) { push @vals, $fdat{"$name-_-$i"} ; } $fdat{$name} = join ($join, @vals) ; } 1 ; __EMBPERL__ [# --------------------------------------------------------------------------- # # show_control - output the control #] [$ sub show_control ($self) my $class = $self -> {class} ; my $numinputs = $self -> {numinputs} ; my $size = $self -> {size} ||= 80 / ($self -> {width} || 2) / $numinputs ; my $sep = $self -> {separator} || ' ' ; my $i = 0 ; $] [$ while ($i < $numinputs) $] <input type="text" class="cBase cControl [+ $class +]" name="[+ $self->{name} +]-_-[+ $i +]" [$if $size $]size="[+ $size +]"[$endif$] [$if $self -> {maxlength} $]maxlength="[+ $self->{maxlength} +]"[$endif$] [+ do { local $escmode = 0 ; $self -> {eventattrs} } +]>[+ $i + 1 < $numinputs?$sep:'' +] [- $i++ -] [$endwhile$] [$endsub$] __END__