Passing variables to frames - cgi

D

divya

This is the problem I am having:
I have an index page where I obtain input from the user (for example
their date of birth). This information is passed to Page2. Page2 has
frames. Outside of the frames I can access the user's input. But within
the frames I can't seem to be able to get the value. The date is stored
in a global variable.
Here are snippet's of code:

##Variables
my ($BDAY, $path_info, $script_name);

##Obtaining value from the index page
if ($q->param('birthday')) {
$BDAY = $q->param('birthday');
}

##Creating frame
$path_info = $q->path_info;

##Printing the fames
if (!$path_info) {
&print_frameset($BDAY);
exit 0;
}

##Printing the different frames
&print_html_header; ##HTML headers
&print_content if $path_info=~/content/; ##Left pane with links
&print_expand($BDAY) if $path_info=~/expand/; ##Expanded graph
&print_analyse if $path_info=~/analyse/; ##Options to do
analysis
&print_end; ##End HTML
&print_error;

##Setting up the frames
sub print_frameset {

my $birthday = shift;
$script_name = $q->script_name;

print "<html><head><title>$TITLE</title></head>";
print "<frameset cols='8%,92%'>";
print "<frame src='$script_name/content' name='content'>";
print "<frameset rows='70%,30%'>";
if ($birthday) {
print "<frame src='$script_name/expand' name='expand'>";
print "<frame src='$script_name/analyse' name='analyse'>";
}
else {
print "<frame src='$script_name/error' name='error'>";
}
print "</frameset>";
print "</frameset>";

exit 0;
}

One of the frame's contents:
sub print_expand {

my $birthday = shift;
print $q->h3("My birthday is on: $birthday");

}

In this frame all it prints is "My birthday is on: " it is not printing
the variable.

I cannot figure out why I cannot get the value in the subroutines. I
have checked and the value does get passed from the index page to this
page. I can print it from the global variable $BDAY but not from the
sub routines that form the frames.

I have spent almost 2 days on this and I am starting to go insane!! I
would appreciate any hints/help/suggestions you can provide.

Thanks!
Me
 
J

Joe Smith

divya said:
if ($birthday) {
print "<frame src='$script_name/expand' name='expand'>";
print "<frame src='$script_name/analyse' name='analyse'>";
}
I cannot figure out why I cannot get the value in the subroutines.

print qq(<frame src="$script_name/expand?birthday=$BDAY" name="expand">\n);
print qq(<frame src="$script_name/analyse?birthday=$BDAY"
name="analyse">\n);

You'll need to use some of the other methods from CGI.pm to
do URL encoding on the value of $BDAY.
-Joe
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,564
Members
45,040
Latest member
papereejit

Latest Threads

Top