Thanks for your reply Carl!
Do I need to involve Ajax in that problem? I would like to keep it as
simple and light as possible and have no experience in Ajax.
Attached is what I tried in the config file to get my field to repeat on
clicking on a button:
<elements>
type Hidden
name nof_samples
constraints Required
value 1
</elements>
<elements>
type Repeatable
increment_field_names 1
counter_name nof_samples
name samples
<elements>
name sample_files
label Sample file *
type File
constraints Required
constraints File
<attributes>
title Input a file here...
</attributes>
</elements>
</elements>
<elements>
value Add a sample
name add_sample
type Button
<attributes>
#onclick "document.forms[0].nof_samples.value++;"
# does properly increment nof_samples, but field is not repeated
onclick "document.forms[0].nof_samples.value++;
window.location.reload();"
# does properly increment nof_samples, but field is not repeated
</attributes>
</elements>
<elements>
value Submit
name submit
type Submit
</elements>
As you can see, on cliking on the button, I increment a hidden variable.
My field looks at that variable to know how many times it should be
repeated.
In practice, clicking on the button correctly increment the variable,
but the field does not get repeated several times.
What am i missing here?
Thanks,
Florent
Carl Franks wrote:
2009/3/14 Florent Angly <florent.an...@gmail.com>:
Hi FormFu list,
I have created a small Catalyst webapp that uses a form that is based on a
FormFu YML configuration file. I would like to have some repeatable fields,
along with a button to click in order generate more of these fields on the
fly.
I have read the Catalyst tutorial, the FormFu documentation, and I have some
basic repeatable fields, but I seem to have problem with the logic of how to
generate more repetitions of these fields from the webinterface.
Can I even do that using only my FormFu config file, or would I need some
extra logic in my Catalyst code? I asked the Catalyst list without
success... Maybe the asking the FormFu experts on this list is a better
place to ask.
If someone could post a simple example of a simple FormFu config file with a
simple repeatable field and button to add more of this field, it would be
great!
Hi,
You will need code to piece it together, but you shouldn't need an
extra config file.
You need to decide whether you want this to work with AJAX, or not.
If AJAX, I'd probably suggest having a separate controller handle to handle it.
Use JS to keep the 'counter_name' [1] hidden field updated, and pass
that value in the AJAX call.
Then in your controller, do something like:
$form->load_config_file('$file');
$count = $c->request->param->{count};
my $rep = $form->get_all_elements({ type => 'Repeatable' });
my $new = $rep->repeat($count);
my $html = join '', @$new;
[1]
http://search.cpan.org/~cfranks/HTML-FormFu-0.03007/lib/HTML/FormFu/Element/Repeatable.pm#counter_name
_______________________________________________
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