[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