Hmm, this doesn't appear to work. Let me explain what I'm trying to do. I have a Z SQL Method called selectmoduleinfoMethod that contains the SQL: SELECT * FROM RECMGR_EL_MODULE_Query WHERE MODCODE = <dtml-sqlvar MODCODE type="string"> This recordset is returned to a dtml form to populate the fields ready for editing. One of the database table entries returned from this query is the value of MODLEVEL, this modlevel can be one of seven choices that appear in a select list. However I'd like the one returned from the database to appear as selected in the form for editing. As far as I can see the example you gave me does not retrieve the value of MODLEVEL from the returned SQL recordset it only checks for its existence and consequently cannot test for the conditions. Any Ideas how I may resolve this? Jon -----Original Message----- From: Jaroslav Lukesh [mailto:lukesh@seznam.cz] Sent: 20 June 2006 12:29 To: me@jonbowlas.com; zope@zope.org Subject: RE: [Zope] Nested dtml tags
bounces+lsh=wo.cz@zope.org] On Behalf Of Jonathan Bowlas How can I do this with dtml?
<select name="MODLEVEL" size="1"> <dtml-if expr="<dtml-var name="MODLEVEL"> == 1"> #I need an alternative to this. <option value="1" selected="selected">1</option> <option value="2"><2</option> Etc, etc.
<dtml-if MODLEVEL> <select name="MODLEVEL:int" size="1"> <option value="1" <dtml-if expr="MODLEVEL == 1">SELECTED</dtml-if> >1</option> <option value="2" <dtml-if expr="MODLEVEL == 2">SELECTED</dtml-if> >2</option> Etc, etc. </dtml-if> Regards, JL.
This is untested, but it's a pretty familiar idiom to me at the moment. <dtml-in selectmoduleinfoMethod prefix="dbmodlevel"> <dtml-call "REQUEST.set('dbmodlevel', dbmodlevel_item)"> </dtml-in> <select name="MODLEVEL"> <dtml-in "range(1, 8)" prefix="modlevel"> <option<dtml-if expr="modlevel_item == dbmodlevel"> selected="selected"</dtml-if>><dtml-var modlevel_item></option> </dtml-in> </select> Cheers, -Andrew ----- andrew@clearwired.com / http://clearwired.com On Jun 20, 2006, at 6/20/2006 6:51 AMMDT, Jonathan Bowlas wrote:
Hmm, this doesn't appear to work.
Let me explain what I'm trying to do.
I have a Z SQL Method called selectmoduleinfoMethod that contains the SQL:
SELECT * FROM RECMGR_EL_MODULE_Query WHERE MODCODE = <dtml-sqlvar MODCODE type="string">
This recordset is returned to a dtml form to populate the fields ready for editing.
One of the database table entries returned from this query is the value of MODLEVEL, this modlevel can be one of seven choices that appear in a select list. However I'd like the one returned from the database to appear as selected in the form for editing.
As far as I can see the example you gave me does not retrieve the value of MODLEVEL from the returned SQL recordset it only checks for its existence and consequently cannot test for the conditions.
Any Ideas how I may resolve this?
Jon
-----Original Message----- From: Jaroslav Lukesh [mailto:lukesh@seznam.cz] Sent: 20 June 2006 12:29 To: me@jonbowlas.com; zope@zope.org Subject: RE: [Zope] Nested dtml tags
bounces+lsh=wo.cz@zope.org] On Behalf Of Jonathan Bowlas How can I do this with dtml?
<select name="MODLEVEL" size="1"> <dtml-if expr="<dtml-var name="MODLEVEL"> == 1"> #I need an alternative to this. <option value="1" selected="selected">1</option> <option value="2"><2</option> Etc, etc.
<dtml-if MODLEVEL> <select name="MODLEVEL:int" size="1"> <option value="1" <dtml-if expr="MODLEVEL == 1">SELECTED</dtml-if> >1</option> <option value="2" <dtml-if expr="MODLEVEL == 2">SELECTED</dtml-if> >2</option> Etc, etc. </dtml-if>
Regards, JL.
_______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Jonathan Bowlas schrieb:
Hmm, this doesn't appear to work.
Let me explain what I'm trying to do.
I have a Z SQL Method called selectmoduleinfoMethod that contains the SQL:
SELECT * FROM RECMGR_EL_MODULE_Query WHERE MODCODE = <dtml-sqlvar MODCODE type="string">
You should never use SELECT * in production code. Better state the name of the columns you really want there. (Thus fixing their name) One simple form would be: SELECT modlevel,modname,modlevel=<dtml-sqlvar modlevel> as selected FROM foobar WHERE modcode = <dtml-sqlvar modcode type=string> ... Then you could use the result of your ZSQL Method more or less directly, in ZPT for example: <select name="MODLEVEL"> (size="1" is default anyway ;) <option tal:repeat="mod here/yourZSQLMethod" tal:attributes="value mod/modlevel; selected mod/selected" tal:content="mod/modname">123</option> </select> In Python Script, it should work like this: MODLEVEL=request.form.get('MODLEVEL','') # make sure you get the types correctly return [dict(x,selected=x.modlevel==MODLEVEL) for x in context.selectmoduleinfoMethod()] this works with your ZSQL method as it is (more or less - adjust the column names) and can be used like the one above. If you like ugly templates and a lot of writing you can translate the example to DTML - this is left to the reader ;) Regards Tino
Thanks for everyone's help. I may be able to sort this now. -----Original Message----- From: Tino Wildenhain [mailto:tino@wildenhain.de] Sent: 20 June 2006 15:09 To: me@jonbowlas.com Cc: 'Jaroslav Lukesh'; zope@zope.org Subject: Re: [Zope] Nested dtml tags Jonathan Bowlas schrieb:
Hmm, this doesn't appear to work.
Let me explain what I'm trying to do.
I have a Z SQL Method called selectmoduleinfoMethod that contains the SQL:
SELECT * FROM RECMGR_EL_MODULE_Query WHERE MODCODE = <dtml-sqlvar MODCODE type="string">
You should never use SELECT * in production code. Better state the name of the columns you really want there. (Thus fixing their name) One simple form would be: SELECT modlevel,modname,modlevel=<dtml-sqlvar modlevel> as selected FROM foobar WHERE modcode = <dtml-sqlvar modcode type=string> ... Then you could use the result of your ZSQL Method more or less directly, in ZPT for example: <select name="MODLEVEL"> (size="1" is default anyway ;) <option tal:repeat="mod here/yourZSQLMethod" tal:attributes="value mod/modlevel; selected mod/selected" tal:content="mod/modname">123</option> </select> In Python Script, it should work like this: MODLEVEL=request.form.get('MODLEVEL','') # make sure you get the types correctly return [dict(x,selected=x.modlevel==MODLEVEL) for x in context.selectmoduleinfoMethod()] this works with your ZSQL method as it is (more or less - adjust the column names) and can be used like the one above. If you like ugly templates and a lot of writing you can translate the example to DTML - this is left to the reader ;) Regards Tino
participants (3)
-
Andrew Hedges -
Jonathan Bowlas -
Tino Wildenhain