[html-formfu] Losing default value on update
Charlie Garrison
garrison at zeta.org.au
Fri Oct 15 10:23:15 GMT 2010
Good evening,
Sorry for taking so long to get back to this; had to find time
to investigate it more.
On 2/09/10 at 9:50 PM +0100, Carl Franks <fireartist at gmail.com> wrote:
>On 26 August 2010 18:02, Charlie Garrison <garrison at zeta.org.au> wrote:
>>
>> I've got a read-only field (from HTML::FormFu::Model::DBIC) which is losing
>> the displayed value after form is submitted. I've tried various combinations
>> of force_default, retain_default, etc but don't seem to be able to get the
>> right configuration.
>
>Hi,
>Sorry, I'm not clear on exactly what behaviour you're seeing, and what
>you're expecting - can you clarify?
I'm using a field of type Label to display field/value for
current record, eg:
elements:
- type: Label
name: username
label: User Name
When the form first loads `$form->model->default_values($user)`
the username is displayed as expected in the html page. After
submitting the form, the username is blank in the html page.
>> All other fields in the form get saved to the db as expected. Am I doing
>> something wrong in the config or controller action?
>
>Are you expecting the read_only field value to be saved to the database?
No, I'm expecting the form field defined as type Label to retain
it's value after a form submission.
>All the read_only option does is cause update/create to not update the
>column corresponding to that field.
>
>In the most basic use, it doesn't need force_default or retain_default
>to be set - so can you explain what you're wanting that to do?
Hopefully I've clarified above what I'm wanting. I've figured
out why the Label field is losing its value. But I'm not sure
how to fix it or how I should be using FormFu instead.
The cause of the problem is simple, there is no `username` value
being submitted with the form since there is no html <input
type=hidden> for the Label field. The form is populated with
submitted data which doesn't contain the username, so therefore
username appears blank.
I tried creating a Hidden field type named `username`, but I get
the following error when submitting the form:
Can't locate object method "delete_nested_hash_value" via
package "HTML::FormFu" at
/Library/Perl/5.8.8/HTML/FormFu/Element/Label.pm line 77.
I'm guessing that is due to two elements with the same name.
It's quite likely I've got the wrong config/setup, but I'm not
sure what I should be doing. The only solution I've thought of
is to set the default_value for `username` field regardless of
whether the form has been submitted. That doesn't seem like the
right solution though. Would changing the Label element to
optionally include a hidden field be a workable solution?
To simplify this issue, is there a 'correct' way to display a
static/read-only value (eg. Label element) which is retained
after submitting a form?
Charlie
--
Ꮚ Charlie Garrison ♊ <garrison at zeta.org.au>
O< ascii ribbon campaign - stop html mail - www.asciiribbon.org
〠 http://www.ietf.org/rfc/rfc1855.txt
More information about the HTML-FormFu
mailing list