jrejr has asked for the wisdom of the Perl Monks concerning the following question:

Hi guys, Been on this website for months helping me develop my first application. Now I am down to the last deadline and all the answers found here do not seem to work for me.

I have a data entry page that when the user hits submit it goes to several web and XML sites to gather information. I them put it all toghether in a PDF to be sent back to the client.

My problem is that the PDF replaces the data entry page. For security and a more professional appearance I want the PDF in a new window, while I clear the data entry page for the next entry. I know how to clear the data entry page, I just need to create a new window in which pdf-creator.pl can display the results. And actually pdf-creator.pl creates a unique PDF on my hard-drive. I just need that to be sent to the user in a new window.

Sincerely
JREJr
No known identity

Replies are listed 'Best First'.
Re: Creating a popup for data results
by gellyfish (Monsignor) on Aug 06, 2004 at 13:09 UTC

    Not a perl answer but you probably can do it with a 'target="_new"' attribute on the link or form action that references the program.

    /J\

Re: Creating a popup for data results
by Gilimanjaro (Hermit) on Aug 06, 2004 at 13:42 UTC
    You'll want to change your form/submit button so that when clicked, it builds a url suitable for a GET request from the form parameters, and that consequently uses javascript to open a new window with that location.

    This new url should point to your script, which generates the pdf and 'outputs' it.

    The javascript should, after opening the new window, reset the form parameters for your next entry.

    For openening the new window, have a look at W3 Schools

Re: Creating a popup for data results
by Grygonos (Chaplain) on Aug 06, 2004 at 13:16 UTC

    If you are creating a pdf that has 755 permissions on the webserver, you can have your script open a new window with the link to the pdf as the address, rather than overwriting the current window. I know in HTML you would make a link like <a href"http://blah" target="_new">pdf</a> however I don't know how to do this via CGI, but read the docs, it is probably in there if it can. Worst case (and I do mean worst) Javascript can pop open new windows with a specified address. There are modules to make Perl capable of sending parameters to Javascript, but I would HIGHLY reccomend AGAINST using Javascript if AT ALL POSSIBLE.

    However, if you're looking for security, I don't know what my solution will buy you , this pdf will be 755 readable on your server and could conceivably be read by anyone, (and if you use Javascript you are opening up another can of worms security wise too). I guess my point is, be sure you name this pdf something cryptic, and delete it in a timely manner (via some kind of cron job) so they are not constantly acumulating world readable pdfs full of your clients data.