[Zope] Converting REQUEST style lists into real lists

Thomas B. Passin tpassin@mitretek.org
Fri, 27 Jul 2001 10:04:05 -0400


[Dieter Maurer]

> Albert L. Ting writes:
>  > ...
>  > Yes, that is a list, but not the list I'm looking for.  What I want is
an
>  > exhaustive list.  If the person selected every other checkbox in the
above
>  > example, starting with the first one, I want zope to return a six
element
>  > list like below.
>  >
>  > ['1','','3','','5','']
> Zope cannot do this for you without application knowledge:
>
>   As of the HTML spec, a checkbox is only successful,
>   if it is checked. Unsuccessfull form controls do not
>   contribute to the form result set.
>   Zope has no chance to detect them from the request
>   data.
>
> Your application (Python Script) can have a list of possible
> checkbox values and build the list you want from that
> available in the request.
>

Actually there is another way, purely HTML and forms processing.  It's a bit
wierd, but it will work.  For every check box, include another hidden field
of the same name.  You can set the value to anything you like, maybe "not
checked".  Make it a list type field (the checkbox too) by using the ":list"
syntax.

Then if a check box of the same name has been checked, for that variable
name, your REQUEST will contain a list of length 2, but if not you get a
list of length one.   This is easy to test for with dhtml.

Cheers,

Tom P