Returning a ZPT form with fields filled in
hey all, I have a page template that displays a list of rows from a database, along with a radio button on each row and an 'edit' button. When a radio button is selected and 'Edit' pressed, I want to send the user to another page that contains a form with all the values filled in with the data of that specific row, so the user can modify the information and submit the changes to the database. I've created the page that displays the rows, along with the radio button... I've also got the page with the form, and associated script/ZSQL method for updating the database. What I don't know how to do is the populate the form with the information I need. Can I use a python script to return the form page with the values filled in? How? BTW the forms are based on Formulator forms, if that helps or makes a difference. Much thanks, Jan --- Jan (Wyvern) Van Uytven Sysadmin, UVic TRIUMF wyvern@uvic.ca Randomly selected from my quote-file: "Every revolution evaporates, leaving behind only the slime of a new bureaucracy." - Franz Kafka
I give you here an example how you can do it as a set of a pagetemplate and an acociated script. How to adapt it to your partiqular situation is up to you. Robert here a minimal form with one field: As you can see values are collected first from the request. They are put there when pass parameter trough the url like so: http://myserver/mytemplate?first=robert&last=rottermann if it they are not found not found there then the options are checked. The parameters are put there when you call the template as a method in a python script like so: return mytemplate(first="robert", last="rottermann") If neither of them yield a result nothing (which is an empty string in this situation) is assigned. The net result is, when you call the template the first time, an empty form is presented, when you press the submit butten the form is represented with its input converted to lowercase. <form action="myscript" "tal:define=" name request/first | options/first | nothing; age request/last | options/last | nothing;"> <input name="first" type="text" tal:attributes="value first"> <input name="first" type="text" tal:attributes="value first"> <input type=submit"> </form> Here the script myscript ## Script (Python) "myscript" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters=frst, last ##title= ## # do some processing first = first.lower() last = last.lower() # call the page tamplate as function and pass parameters return mytemplate(first=first, last=last) Jan Van Uytven wrote:
hey all,
I have a page template that displays a list of rows from a database, along with a radio button on each row and an 'edit' button. When a radio button is selected and 'Edit' pressed, I want to send the user to another page that contains a form with all the values filled in with the data of that specific row, so the user can modify the information and submit the changes to the database.
I've created the page that displays the rows, along with the radio button... I've also got the page with the form, and associated script/ZSQL method for updating the database.
What I don't know how to do is the populate the form with the information I need. Can I use a python script to return the form page with the values filled in? How?
BTW the forms are based on Formulator forms, if that helps or makes a difference.
Much thanks,
Jan
--- Jan (Wyvern) Van Uytven Sysadmin, UVic TRIUMF wyvern@uvic.ca
Randomly selected from my quote-file:
"Every revolution evaporates, leaving behind only the slime of a new bureaucracy." - Franz Kafka
_______________________________________________ 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 )
participants (2)
-
Jan Van Uytven -
robert rottermann