homepage Welcome to WebmasterWorld Guest from 54.145.183.126
register, free tools, login, search, pro membership, help, library, announcements, recent posts, open posts,
Become a Pro Member

Home / Forums Index / Code, Content, and Presentation / Perl Server Side CGI Scripting
Forum Library, Charter, Moderators: coopster & jatar k & phranque

Perl Server Side CGI Scripting Forum

    
Perl html help message
How do I create a new html form
jwzumwalt

5+ Year Member



 
Msg#: 3805539 posted 9:43 pm on Dec 11, 2008 (gmt 0)

I would like to have a help/about information html form spawn from my perl program (without the need for a second cgi or perl file. I would prefer to have a new form open up without disturbing the parent browser window. Like a dialog box on steroids.

I have investigated javascript dialog boxes but they are limited in size and lack html formatting or line control i.e breaks. (Yes, I have tried "\n" but this no longer works with current javascript compilers)

Any suggestions? - Thanks for the help

FYI
I have created a cgi directory listing program and don't want to make the user have to browse away from the listing.
I have a small "about" javascript button at the bottom. I would prefer to supply a table of contents and substantial other setup information.

[edited by: phranque at 1:22 pm (utc) on Dec. 12, 2008]
[edit reason] No urls, please. See TOS [webmasterworld.com] [/edit]

 

rocknbil

WebmasterWorld Senior Member rocknbil us a WebmasterWorld Top Contributor of All Time 10+ Year Member



 
Msg#: 3805539 posted 2:22 pm on Dec 12, 2008 (gmt 0)

Not sure what you're getting at, but a few comments:

Yes, I have tried "\n" but this no longer works with current javascript compilers

\n works fine:

<a href="myhtml.html" onClick="return some_alert();">click</a>


<script type="text/javascript">
function some_alert() {
var msg = 'This is some message\n'+
'in JS with newlines. But if you\n'+
'generate it from perl you have to\n'+
'DOUBLE escape the newline.';
alert(msg);
return false;
}
</script>

The reason being, perl (or PHP) will escape the \, leaving you with an "n" at the end of each line.

However, it sounds to me like you want a form or other supplemental content, so the alert box will not work.

Just use JS new window methods with a blank target in case JS is disabled. Where "myform.html" is your form, help file, script, or other supplemental content,

<a href="myhtml.html" onClick="return newWin('myform.html','400','400');" target="new window">HELP!</a>


<script type="text/javascript">
function newWin(url,w,h) {
// Insures you ALWAYS get a NEW window by
// setting a unique ID for window name:
var day = new Date();
var id = day.getTime();
var ww = w+75; // add some padding for window
var wh = w+125;
// ALWAYS heep it resizable with scrollbars
var params = 'width='+ww+',height='+wh+',scrollbars,resizable';
var win=open(url,id,params);
return false;
}
</script>

As mentioned, if you generate JS from your perl script, double escape any newlines you want to appear in the Javascript, like \\n.

jwzumwalt

5+ Year Member



 
Msg#: 3805539 posted 9:04 pm on Dec 13, 2008 (gmt 0)

Thanks for all the help! This is what I came up with that does what I need... Thanks again - JZ

<SCRIPT LANGUAGE="JavaScript">
function newWindow() {
info=window.open("","Information","toolbar=yes,scrollbars=yes,width=300,height=300");
info.document.write("<html><head></head><body>hello world</body></html>")
}
</SCRIPT>

rocknbil

WebmasterWorld Senior Member rocknbil us a WebmasterWorld Top Contributor of All Time 10+ Year Member



 
Msg#: 3805539 posted 3:57 pm on Dec 14, 2008 (gmt 0)

I'm *really surprised* that works at all. :-) When you do a document.write(); you need to flush the buffer with document.close(). Otherwise you get a blank page (or at least used to . . . )

While you're at it, you don't need to specify yes/no for your window parameters; including them means yes, excluding them means no.

LANGUAGE is no longer required, just describe the mime type.

Last, see the previous example for the window name/id, in your scenario all subsequent clicks on the link will open in the same window named "Information." This is not a title, it's an ID for the window. Using the method described will always insure it opens in a new window.


<script type="text/javascript">
function newWindow() {
var day = new Date();
var id = day.getTime();
info=window.open("",id,"toolbar,scrollbars,width=300,height=300");
info.document.write("<html><head></head><body>hello world</body></html>");
info.document.close();
}
</script>

Global Options:
 top home search open messages active posts  
 

Home / Forums Index / Code, Content, and Presentation / Perl Server Side CGI Scripting
rss feed

All trademarks and copyrights held by respective owners. Member comments are owned by the poster.
Home ¦ Free Tools ¦ Terms of Service ¦ Privacy Policy ¦ Report Problem ¦ About ¦ Library ¦ Newsletter
WebmasterWorld is a Developer Shed Community owned by Jim Boykin.
© Webmaster World 1996-2014 all rights reserved