[Zope] Form Variables
J Cameron Cooper
zope-l at jcameroncooper.com
Wed Jun 15 12:04:40 EDT 2005
David Ayres wrote:
> I've been working around this issue for literally years and finally have the
> time to seek a real solution. :) I can't find much information, so I'm
> assuming I'm just taking the wrong approach.
>
> Whenever a form is posted, the text fields always show up in the
> request.form, however any other type of form element that has not been given
> a value does not show up. None of the fields have the ignore_empty
> attribute. Besides using the missing= attribute, what other options are
> there?
>
> Most of my forms have optional fields and this is especially painful when
> trying to use ZSQL Methods or when creating multipage forms that refer to
> earlier form values.
The specifications for forms only require certain "successful" controls
to be submitted, and most browsers work this way. This is specially
noticable with checkboxes, which when on are in the request and absent
when off. See:
http://www.w3.org/TR/REC-html40/interact/forms.html#successful-controls
Frankly, I consider this behavior bizarre and unhelpful, but there's not
much to be done about it protocol-side. I would imagine there's a
hstorical reason.
For use in Zope, keep in mind that parameters for both Python scripts
and Z SQL Methods allow for default values, so you don't have to rely on
a parameter being present in the request. In ZPTs there's conditional
expressions, and in DTML the 'missing' pseudo-attribute.
--jcc
--
"Building Websites with Plone"
http://plonebook.packtpub.com/
Enfold Systems, LLC
http://www.enfoldsystems.com
More information about the Zope
mailing list