[Zope] Restatement of list problem

Schmidt, Allen J. aschmidt@nv.cc.va.us
Fri, 21 Jun 2002 08:35:58 -0400


You are correct in how the hidden fields were set up.
In your example, what if 'br' comes in as a single...not a list? Won't the
dtml-in throw an error if it's not a list??

My thought was to try this (semi-pseudo code):

<if br>
 <if string.find(br,'[')>  //then it's a list
  <in br>
    type=hidden name=sequence-item
  </in>
 <else> // not a list but a single
    type=hidden name=br
 </if>
</if>


Won't using the string.find expose the list so the dtml-in won't blow up?


Thanks!!

-Allen  


-----Original Message-----
From: Dieter Maurer [mailto:dieter@handshake.de]
Sent: Wednesday, June 19, 2002 1:49 PM
To: Schmidt, Allen J.
Cc: 'zope@zope.org'
Subject: Re: [Zope] Restatement of list problem


Schmidt, Allen J. writes:
 > Maybe I over-complicated my original request.
 > 
 > I have a form field that is a list: 
 > ['2 DR CONVERTIBLE','2 DR COUPE','2 DR HATCHBACK']
 > 
 > The URL looks like this: 
 > vehicleList?bt=2+DR+CONVERTIBLE&bt=2+DR+COUPE&bt=2+DR+HATCHBACK
 > 
 > When I pick for years 2002 and 2001 for the above body types, the URL
 > changes a bit:
 >
vehicleList?yr%3Alist=2002&yr%3Alist=2001&bt%3Alist=%5B%272+DR+CONVERTIBLE%2
 > 7%2C+%272+DR+COUPE%27%2C+%272+DR+HATCHBACK%27%5D
This looks as if you would have your list in a hidden variable
of the form

   <input name="bt:list" type="hidden" value="&dtml-bt;">

When this arrives at the Zope server, you will get a list with
one string that respresents the former list as a string.

You need instead:

   <dtml-in br>
     <input name="bt:list" type="hidden" value="&dtml-sequence-item;">
   </dtml-else>
     <input name="bt:tokens" type="hidden" value="">
   </dtml-in>

   i.e. each list element must gets its one "input" control.


Dieter