Hi, Wow, I didn't know the part of that. How kind of you, Carl.
Finally, I decided to add hidden fields dynamically in perl codes like this: my $form = $c->stash->{ form }; my $position = $form->get_element({ type => 'Submit'}); my @hidden = qw( foo bar ); foreach my $hidden ( @hidden ) { for ( $c->req->param( $hidden ) ) { my $element = $form->element({ type => 'Hidden', name => $hidden, value=> $_ }); $form->insert_after( $element, $position ); } } I would build urls according to hidden fields' value using jQuery and I think multiple value field is easier to handle. Thank you all the same. On Tue, Jun 22, 2010 at 6:19 PM, Carl Franks <fireart...@gmail.com> wrote: > Hi, > > There's already a HTML::FormFu::Filter::Spit that can deserialize a > submitted value. > e.g, this will turn "a,b,c" into a perl array [ 'a', 'b', 'c' ]. > filter: > - type: Split > regex: ',' > > It would be simple to write a custom Deflator that could do the > serialization for you... > > package MyApp::FormFu::Deflator::JoinIDs > use base 'HTML::FormFu::Deflator'; > use HTML::FormFu::Constants qw( $EMPTY_STR ); > use Try::Tiny; > > sub deflator { > my ( $self, $value ) = @_; > > return if !defined $value || $value eq $EMPTY_STR; > > my $flat_value; > > try { > $flat_value = join ',', @$value; > } catch { > return $value; > }; > > return $flat_value; > } > 1; > > If you add that deflator to the Hidden field, it would let you do: > $field->default( \...@department_ids ); > > Carl > > > On 22 June 2010 09:45, Hu Hailin <i...@h2l.name> wrote: >> Hi, >> >> Let me try to make an example: >> >> a employee search page and can be searched by department. >> Suppose there are hundreds of departments, showing a very long >> multiple selectable select element seems not a good idea. >> I try to make the page only take departments' id from query and >> display the departments' info in the page. >> >> Even if use a block element, hundreds of departments info have to be >> listed in page, right? >> >> Well, it seems I have to serialize data... >> >> Thank you, guys. >> >> On Tue, Jun 22, 2010 at 5:08 PM, Carl Franks <fireart...@gmail.com> wrote: >>> Hi, >>> >>> A hidden field won't support multiple values, so you'd need to >>> serialize them yourself - for example with JSON. >>> $field->default( encode_json( $value ) ); >>> >>> I'd recommend though, just using Block elements, as it's very easy to >>> attach IDs or class-names, which your JavaScript can target to >>> show/hide the blocks. >>> >>> Carl >>> >>> >>> On 22 June 2010 08:19, Hu Hailin <i...@h2l.name> wrote: >>>> Hi >>>> >>>> My situation is that I have so large a form that I try to split some >>>> condition out to display them in a collapsible div with javascript. >>>> So I am trying to pass data using Element::Hidden, but it accepts >>>> first value and fills it in form in multiple values' case. >>>> I also glanced at Element::Repeatable which seems not the one I want... >>>> >>>> Yes, it might be implemented using blocks but a little too complex. >>>> Any advice for implementing a repeatable hidden element? >>>> >>>> Thanks. >>>> -- >>>> islue >>>> >>>> _______________________________________________ >>>> HTML-FormFu mailing list >>>> HTML-FormFu@lists.scsys.co.uk >>>> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu >>>> >>> >>> _______________________________________________ >>> HTML-FormFu mailing list >>> HTML-FormFu@lists.scsys.co.uk >>> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu >>> >> >> >> >> -- >> islue >> >> _______________________________________________ >> HTML-FormFu mailing list >> HTML-FormFu@lists.scsys.co.uk >> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu >> > > _______________________________________________ > HTML-FormFu mailing list > HTML-FormFu@lists.scsys.co.uk > http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu > -- islue _______________________________________________ HTML-FormFu mailing list HTML-FormFu@lists.scsys.co.uk http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu