[Zope] dtml-if fustration!

Greg Conway greg@gmlnt.com
Sun, 25 Aug 2002 17:24:39 +0100


Hi Ausum,

Thanks for the reply. What I actually mean is - the name of the variable I
want the value of is stored inside another variable, in the request.

For example...

REQUEST.StoredVar[1] contains SelectStudentID

and I want to perform a dtml-if condition based on whether SelectStudentID
contains a value or not!

So to get this value I perform a '_.getattr(REQUEST,StoredVar[1])' command.

But I cannot seem to do this within a <dtml-if ... > statement, it throws up
an error if the variable does not exist, presumably because I'm trying to
work through an extra layer of variables....

just to make life complicated :)

hope this is now clearer, any help much appreciated!

Regards,

Greg.

>> -----Original Message-----
>> From: zope-admin@zope.org [mailto:zope-admin@zope.org]On Behalf Of Ausum
>> Studio
>> Sent: 24 August 2002 18:39
>> To: zope@zope.org
>> Subject: Re: [Zope] dtml-if fustration!
>>
>>
>> What is the "next pass"?. Do you mean within the same page?
>> If so, you don't need to declare the variable, as long as it's
>> been already
>> defined for the whole page. Just use <dtml-var SelectSID> anywhere.
>>
>> Now, if you need to change its value, and then use it on the remaining
>> portion on the rendered page, the anwser is the same, use <dtml-var
>> SelectSID>. You don't need to use the "REQUEST.SelectSID" part.
>>
>>
>> Ausum
>>
>>
>> ----- Original Message -----
>> From: "Greg Conway" <greg@gmlnt.com>
>> To: "Zope@Zope. Org" <zope@zope.org>
>> Sent: Saturday, August 24, 2002 11:56 AM
>> Subject: [Zope] dtml-if fustration!
>>
>>
>> > Hi all,
>> >
>> > I have a fustrating problem with dtml-if's!! I've tried to
>> work round it
>> in
>> > many ways, but there is probably an easy one I am overlooking
>> knowing my
>> > luck...
>> >
>> > Anyway... Consider the following dtml-if statement:
>> >
>> >     <dtml-if SelectSID>
>> >       SelectSID = <dtml-var SelectSID>
>> >       <dtml-call "REQUEST.set('SelectSID', SelectSID)">
>> >     </dtml-if>
>> >
>> > This works okay, and stores the variable SelectSID in the
>> request for the
>> > code to pick up again on it's next pass.
>> >
>> > However, on the next pass, the variable SelectSID doesn't exist! As the
>> > variable is now REQUEST.SelectSID - and the following code doesn't
>> work....
>> >
>> >     <dtml-if "REQUEST.SelectSID">
>> >       SelectSID = <dtml-var SelectSID>
>> >       <dtml-call "REQUEST.set('SelectSID', REQUEST.SelectSID)">
>> >     </dtml-if>
>> >
>> > ...as an error is thrown up if REQUEST.SelectSID doesn't exist!
>> >
>> > Anybody got a simple answer to my dilemma?!!
>> >
>> > Many thanks for any help!
>> >
>> > Regards,
>> >
>> > Greg Conway.
>> >
>> > This electronic transmission and any files attached to it are strictly
>> > confidential and intended solely for the addressee. If you are not
>> > the intended addressee, you must not disclose, copy or take any action
>> > in reliance of this transmission. If you have received this
>> > transmission in error, please notify us by return and delete the same.
>> > Further enquiries/returns can be posted to postmaster@gmlnt.com
>> > Thank you.
>> >
>> > _______________________________________________
>> > Zope maillist  -  Zope@zope.org
>> > 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 )
>> >
>>
>> _______________________________________________
>> Zope maillist  -  Zope@zope.org
>> 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 )

This electronic transmission and any files attached to it are strictly
confidential and intended solely for the addressee. If you are not
the intended addressee, you must not disclose, copy or take any action
in reliance of this transmission. If you have received this
transmission in error, please notify us by return and delete the same.
Further enquiries/returns can be posted to postmaster@gmlnt.com
Thank you.