----- Original Message ----- 
From: Armin Wappenschmidt <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
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 



_______________________________________________
Zope maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope-dev )

Reply via email to