On 19/09/2007, Mario Minati <[EMAIL PROTECTED]> wrote: > On Wednesday 19 September 2007 11:02:47 Carl Franks wrote: > > On 18/09/2007, Mario Minati <[EMAIL PROTECTED]> wrote: > > > If you have the following form fields: > > > private_street > > > private_city > > > private_email > > > office_street > > > office_city > > > office_email > > > > > > You most likely would like to save both datasets in same table: > > > my $private = $user->new_related( 'data', { type => 'private' } ); > > > $private->populate_from_formfu( $form, { prefix_col => 'private_' } > > > ); my $office = $user->new_related( 'data', { type => 'office' } ); > > > $office->populate_from_formfu( $form, { prefix_col => 'office_' } ); > > > > I think a more elegant solution would be by adding support for > > 'nested' params, e.g. > > > > with the following input: > > "private.street" => x > > "private.city" => y > > "private.email" => z > > > > $form->param('private') would return a hashref: > > { > > street => x, > > city => y, > > email => z, > > } > > This idea is more general and useful. > > > (or use the alternative syntax, "private[street]", "private[city]", etc.) > > Can we get HTML problems with parameter names including '.' or '[]' (I > favour '.' as it would allow chaining.)
There shouldn't be any problems, this approach is already used by CGI::Expand and Catalyst::Plugin::Params::Nested. (The idea was pinched from RoR, which uses it extensively) > > Then do something like: > > > > $relationship->populate_from_formfu( > > $form, > > { param => 'private' } ); > > > > Also, it's maybe not immediately helpful in this example, but I'd like > > to break out the logic from Element/Dojo/Repeatable.pm into a core > > Element/Repeatable.pm element. > > This could help with some relationships, as it would provide automatic > > handling of multiple fields by adding an increasing numerical suffix > > to the fieldname. > > Would you do a more deeply change in FormFu, like adding an additional > parameter to fieldset like > - fieldset > my_parameters_belong_to: private > elements: > - type: Text > name: just_name > > which will lead to 'private.just_name' in HTML code. Yes, this approach. Though I'd probably just name it: nested: private Carl _______________________________________________ HTML-FormFu mailing list HTML-FormFu@lists.scsys.co.uk http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu