[Zope-DB] Results of a selection list

Charlie Clark charlie at begeistert.org
Tue Aug 12 17:56:36 EDT 2003


On 2003-08-12 at 16:17:06 [+0200], Andreas Tille wrote:
> Hi,
> 
> I have a search form in which I want the user input some strings (in the 
> example only one to make it short) and a selection list like this:
> 
> <form action="report" method="get">
> item: <input name="item"          width=20 value=""> <select name=select>
> <option tal:repeat="result here/selectSQL" tal:attributes="value 
> result/id" tal:content="result/name">
> </select>
> </form>
> 
> The report method calls another Z SQL method.  Now I'm looking for a clue 
> how to ask for the select property only if an item is really selected. If 
> the user did not touched the list (or switched back to the first item of 
> the list) this property should be ignored.

As long as nothing has been selected then the form should contain no values 
for "select". What you might like to do is add a single option with no 
value to your select and make this "selected". You can then easily check 
the request.form to see whether you have a value from the form but you 
should be aware that different browsers do different things with forms: 
some will send empty name/value pairs and others will simply not send 
name/values for empty values. You can pepper your form with Javascript 
"onChange" or "onClick" but that's not something I would recommend.

Your PythonScript might look like the following:

required = ["item", "select"] # always a good idea to check for required 
elements

for item, value in request.form.items():
	if value != "":
		do_something_with_value()

This script will only process non-empty name/value pairs in the form.

Charlie



More information about the Zope-DB mailing list