I'm trying to build a data-entry form using only ZPTs (no DTML, except in
the ZSQL methods that put the data into the DB).  

My little test page is at
http://dhat.vega.zettai.net/clients/ridhwan/dhr3/deltest.htm.  At the top
are the persons currently in the site's MySQL database; the retrieval of
them works fine.  What doesn't work is the attempt to delete a person by
entering an Id into the field and pressing the "Delete this Person" button.

The core ZPT code for this page is:

<h1> People (deletion test)</h1>
<table tal:repeat="row here/dbobs/read_all_people" width="100%" border="0"
cellspacing="0" cellpadding="0"><font face="Verdana, Arial, Helvetica,
<td width="44%" tal:content="string:${row/person_id} - ${row/first_name}
${row/middle_names} ${row/last_name}">Filler</td>
<td width="56%">&nbsp;</td>
<form action="python:here.dbobs.delete_person_py(context.REQUEST.person_id)"
method="post" name="delete_form">
<p>Id of Person To Delete: 
   <input type="text" name="person_id:int" />
   <input name="do_delete" type="submit" id="do_delete" value="Delete this
Person" />
<p>The &quot;Ids&quot; are the numbers in front of each person's name.</p>
<p><a href="deltest.htm">Refresh This Page</a></p>
<p tal:replace="python:here.dbobs.test1('MyParamValue')">Junk</p>       

Here is the entire body of the Python script "delete_person_py(id)" that the
ZPT <form> tag is trying to call and that in turn invokes the ZSQL
"delete_person" method:


and here's the ZSQL method "delete_person" that it calls:

       delete from person where person_id = <dtml-sqlvar person_id type=int>

I think I have the problem narrowed down to the call from the ZPT to the
Python script, which somehow fails to pass the form variable "person_id"
that is needed to select the person to delete.  For example, I know that I
can do deletes successfully by invoking the Python script directly from the
ZMI.  I have tried every variation on the data-passing that I can think of.
I've tried calling the ZSQL method directly from the ZPT.  The successful
call to another script at the bottom of the page rules out a bunch of other
problems.  I have scoured every Zope reference I can find - there are plenty
of examples of doing forms with DTML (e.g.
http://www.faqts.com/knowledge_base/view.phtml/aid/5518/fid/567), but none
for doing forms with ZPTs.

There's just gotta be a "well, duh" simple solution to this, but it has
escaped me.

- Thanks in advance for your help!
- Ken Winter 

<<attachment: winmail.dat>>

ZPT mailing list

Reply via email to