[Zope] R: [Zope] range with variables
Marcel Preda
marcel@punto.it
Tue, 27 Jun 2000 11:44:27 +0200
----- Original Message -----
From: Armin Wappenschmidt <awappens@ford.com>
To: <zope@zope.org>
Sent: Tuesday, June 27, 2000 10:50 AM
Subject: [Zope] range with variables
> Hi all,
>
> I've a problem using the following dtml construct:
>
> <dtml-let start=Variable_from_Formular> # <-- that's the problem!!!!!!
> <dtml-let stop="100">
> <dtml-let period="5">
> <dtml-in "_.range(start,stop,period)">
> <dtml-comment> do something </dtml-comment>
> </dtml-in>
> </dtml-let>
> </dtml-let>
> </dtml-let>
>
>
> How can I set the variable "start" from a user given input?
>
You can call
http://www.domain.com/index?startindex=101
or you can do this bay a usual FORM
<FORM>
<INPUT TYPE="TEXT" NAME="startindex">
...
<input TYPE=SUBMIT>
</FORM>
The problem is that in both cases the `startindex' is a string,
you have tu convert it to int.
<dtml-call "REQUEST.set('start_int',_.string.atoi(startindex)">
ATENTION: If 'startindex' is not a valid number the `atoi' method will
rise an exception like:
Error Type: ValueError
Eror value: invalid literal for atoi():
So is better to check first, something like:
<dtml-try>
<dtml-call "REQUEST.set('startindex_int',_.string.atoi(startindex)">
<dtml-except>
Error message - INVALID NUMBER
</dtml-try>
Other way is to force `startindex' to be a int like:
<FORM>
<INPUT TYPE="TEXT" NAME="startindex:int">
...
<input TYPE=SUBMIT>
</FORM>
But you could have problems, an exception like above could occur
(if someone will input an invalid number) and you can not do something.
That's the story.
PM