[Zope] passing object from dtml to python script
Luby Liao
liao@acusd.edu
Mon, 21 May 2001 15:23:38 -0700 (PDT)
Andres, thank you for taking an interest in my question. After
reading Zopebook, the chapter on 'Advanced Zope Scripting', I decided
that what I want does not auto-magically happen, yet. The application
I have in mind is a shopping-cart-like program in which we continue to
go from one form to another form, keeping all that have been entered
plus the result of sql queries, typically using hidden fields. I have
written a python script to flatten REQUEST.form.items() into hidden
INPUT html element to propagate the information to the next form. I
also find pluggable brains for ZSQL methods helpful. Thank you again
for your help. cheers, Luby
> Hi Luby,
>
> I think you are misunderstanding the purpose of HTML forms (forgive my
> presumption!). When you use dtml-call you will get no results back from
> the call, thus you are seeing ACTION="". ACTION should be followed by a valid
> URL to the handler that will process the form.
>
> I have not probed into your script too deeply but it seems that you can use
> the firstname, lastname variables to pass to the handler script and then
> use emailSearch again in the handler. That way you avoid passing x,
> which you really cannot pass using the HTTP protocol anyhow.
>
> On Thu, May 17, 2001 at 09:29:23AM -0700, Luby Liao wrote:
> >
> > I posted the following question on 5-14-2001. I got a prompt response
> > from Andres (Thank you, Andres). I tried his suggestions (see below)
> > with many variations without success. With some variations, e.g.,
> >
> > ACTION="<dtml-call complete_or_not(x)>" (line 9)
> >
> > there are no errors. Yet view source shows
> >
> > ACTION=""
> >
> > and reading the log from var/Z2.log shows that the python script is
> > never called when the form is submitted.
> >
> > Thank you in advance for your thoughts. cheers, Luby
> >
> > 1. My question
> >
> > Is it possible to pass objects in a dtml, such as a row of the result
> > set of a sql query, into a python script used as a form handler?
> >
> > As an example, on line 9, 'complete_or_not' is a python script with
> > one argument. I would like to pass an object x (line 2) into the
> > script. But the syntax of line 9 is incorrect. I could effectively
> > pass x in using hidden fields. But I hope I can avoid that. Any help
> > is greatly appreciated. cheers, Luby
> >
> >
> > 1 <dtml-if email>
> > 2 <dtml-let x=emailSearch>
> > 3 <dtml-if "_.len(x)==1">
> > 4 <dtml-in x>
> > 5 If you are <dtml-var firstname> <dtml-var lastname>, please
> > 6 proceed to complete the registration, by clicking the
> > 7 'complete' button. Otherwise, click the 'not me'
> > 8 button.
> > 9 <FORM METHOD="POST" ACTION="complete_or_not(x)>" NAME="complete" onSubmit="return verifyInput()">
> > 10 <TABLE border="0" cellpadding="0"><TR><TD align="right">
> > 11 <INPUT TYPE="submit" NAME="complete" VALUE="Complete"></TD><TD align="right">
> > 12 <INPUT TYPE="submit" NAME="not_me" VALUE="Not Me"></TD></TR>
> > 13 </TABLE>
> > 14 </FORM>
> > 15 </dtml-in>
> > 16 </dtml-if>
> > 17 </dtml-let>
> > 18 </dtml-if>
> >
> > 2. Andres's solution
> >
> > Yes its possible to pass objects to scripts you call in dtml.
> >
> > One way to fix your syntax error is to write:
> >
> > <form method="post" action="<dtml-var "complete_or_not(x)" url>" ... >
> >
> > But that will just create the url where your user will go once they click
> > their button.
> >
> > If you want to avoid passing hidden fields take a look at the
> > CoreSessionTracking product.
> >
> > In general you can call a script with something like:
> >
> > <dtml-var "someScrip(mySpecialObject=x)">
> >
> > or
> >
> > <dtml-call "someScriptWhoseSideEffectsIDoNotWantToSee(mySpecialObject=x)">
> >
> > --
> > Luby Liao, Department of Math/CS, University of San Diego, San Diego, CA 92110
> > (619)260-4021(O), (619)452-7644(H), (619)260-4293(fax)
> >
> > 'Twas brillig, and the slithy toves Did gyre and gimble in the wabe:
> > All mimsy were the borogroves And the mome raths outgrabe -- L.C.
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > _______________________________________________
> > 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 )
> >
>
> --
> ------------------------------------------------------
> Andres Corrada-Emmanuel Email: andres@corrada.com
> Internet Programming http://www.mamey.com
> ------------------------------------------------------
>