AW: [Zope] Source from form result.

Marc Fischer marcbpc@gmx.de
Wed, 2 May 2001 12:12:07 +0200


Hi Danny,

first of all thank you for your detailed help!!! That is nearly, what I am
looking for, but one problem exists:
The page I want to extract (you are right ... its on an external server)
does not work with passing the variables in the url. I mean ...

http://server?x=a&y=b does not work.

I need to do it with a form like:

<form action="http://server" method=POST>
<input type=hidden name="x" value="a">
<input type=hidden name="y" value="b">
<input type=submit>
</form>

That's my big big problem. Btw, ... its legal :-)))

Marc






> -----Ursprungliche Nachricht-----
> Von: Danny William Adair [mailto:Danny@Adair.net]
> Gesendet: Mittwoch, 2. Mai 2001 01:26
> An: Marc Fischer; Paula Mangas
> Cc: zope@zope.org
> Betreff: Re: [Zope] Source from form result.
>
>
> Hi Marc,
>
> When you submit a form to one of your DTML methods or documents, all the
> form variables will be available without any further work to be done
> (REQUEST object, see docs). But if I get you right, you are not submitting
> your form to a method of your own. So things are a bit different here.
>
> As I understand it, you are submitting your form to someone else's server
> (since otherwise you would produce the output yourself). Maybe you're
> providing an input form that is directed to a search engine, or something
> similar.
>
> --------------------------------------------
> <form action="http://server" method=POST>
> <input type=hidden name="x" value="a">
> <input type=hidden name="y" value="b">
>
> <input type="text" name="myInput">
>
> <input type=submit>
> </form>
> --------------------------------------------
>
> If so, then you should take a look at the "KebasData" Product:
> http://www.zope.org/Members/kedai/KebasData
>
> Just instantiate a KebasData object, let's say "results". Take a
> look at the
> product's documentation to see how you can extract the relevant code from
> the external server's result page. I'll try to get you started right away:
>
> Set the regular expression patterns properly, start with
>
> .*
>
> as the search pattern and leave the rest blank ("url" will be set
> by a DTML
> method you create, see below), then you'll get the entire
> external page, you
> can change that later to fit your needs.
>
> Then create a DTML method next to it, lets say "getResults". It could look
> like this:
>
> <dtml-var standard_html_header>
> <h2>RESULTS</h3>
> <dtml-with results>
>   <dtml-call "REQUEST.set('new_url', 'http://server?search=' + myInput)">
>   <dtml-call "get_matched(new_url)">
>   <dtml-in match>
>     <dtml-var result><br/>
>   </dtml-in>
> </dtml-with>
> <dtml-var standard_html_footer>
>
> This will fetch the page you want to display by calling
> "get_matched(new_url)", you construct that new_url dynamically, using your
> form variable "myInput". Then it iterates through the results
> list and spits
> out the parts that matched your query, appending a <br/> after each match
> (if you started with .* as the pattern, the list will only have one item,
> holding the complete page).
>
> Oh, right: your DTML method should have a proxy role that has the right to
> "change KebasData" (or maybe even "View management_screens"?) on the
> KebasData object "results", since it calls its function
> "get_matched", which
> is usually only called by clicking "Initialize!" in the
> management screen of
> the KebasData object.
>
> Now you just send your form to "getResults" (instead of the
> external server
> directly), and let your DTML method do the rest:
>
> --------------------------------------------
> <form action="getResults" method=POST>
> <input type=hidden name="x" value="a">
> <input type=hidden name="y" value="b">
>
> <input type="text" name="myInput">
>
> <input type=submit>
> </form>
> --------------------------------------------
>
> Later, you could put the "getResults" code in a python script, then it's
> easier to do further processing with your fetched data.
>
> hth,
> Danny
>
> P.S.: Check the legal stuff before extracting other people's pages ;-)
>
> >>> -----Ursprungliche Nachricht-----
> >>> Von: zope-admin@zope.org [mailto:zope-admin@zope.org]Im
> Auftrag von Marc
> >>> Fischer
> >>> Gesendet: Dienstag, 1. Mai 2001 11.43p
> >>> An: Paula Mangas; Marc Fischer
> >>> Cc: zope@zope.org
> >>> Betreff: AW: [Zope] Source from form result.
> >>>
> >>>
> >>> Hi,
> >>>
> >>> I think there was an understanding problem. I want to get the
> >>> source code of
> >>> the result that is displayed in the browser, after klicking on
> >>> the submit
> >>> button. I want to be able to handle this source perhabs to create a
> >>> dtmlmethod wiht it, or do some string extractions with it.
> >>>
> >>>
> >>>
> >>> > -----Ursprungliche Nachricht-----
> >>> > Von: Paula Mangas [mailto:pamm@students.si.fct.unl.pt]
> >>> > Gesendet: Dienstag, 1. Mai 2001 13:25
> >>> > An: Marc Fischer
> >>> > Cc: zope@zope.org
> >>> > Betreff: Re: [Zope] Source from form result.
> >>> >
> >>> >
> >>> > On Tue, 1 May 2001, Marc Fischer wrote:
> >>> >
> >>> > > Hi,
> >>> > >
> >>> > > I want to get the HTML result from a form into a dtml method.
> >>> > So I need a
> >>> > > way to handle this result, but HOW.
> >>> > >
> >>> > > The form ist like this:
> >>> > >
> >>> > > <form action="http://server" method=POST>
> >>> > > <input type=hidden name="x" value="a">
> >>> > > <input type=hidden name="y" value="b">
> >>> > > <input type=submit>
> >>> > > </form>
> >>> > >
> >>> > > If I klick on submit, I get the result displayed in the
> >>> Browser, but I
> >>> > > cannot work with it.
> >>> > > Perhaps someone could help me???
> >>> >
> >>> >
> >>> > Hi,
> >>> >
> >>> >
> >>> > I think that, if you try
> >>> > <form action="http://server/the_method_you_want_to_call"
> method=POST>
> >>> >
> >>> > it will work.
> >>> >
> >>> > Paula
> >>> >
> >>>
> >>>
> >>> _______________________________________________
> >>> 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 )
> >>>
>