[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