Passing variables to frames - cgi

Discussion in 'Perl' started by divya, Feb 24, 2005.

  1. divya

    divya Guest

    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
     
    divya, Feb 24, 2005
    #1
    1. Advertising

  2. divya

    Joe Smith Guest

    divya wrote:

    > 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
     
    Joe Smith, Feb 24, 2005
    #2
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Powerslave2112

    From Frames to no frames?

    Powerslave2112, Jan 20, 2004, in forum: HTML
    Replies:
    2
    Views:
    620
    brucie
    Jan 20, 2004
  2. Philip
    Replies:
    3
    Views:
    993
    Karl Groves
    Jun 28, 2004
  3. Ale

    Frames or not Frames...

    Ale, Aug 3, 2005, in forum: HTML
    Replies:
    17
    Views:
    983
    Adrienne
    Aug 5, 2005
  4. A Web Master
    Replies:
    4
    Views:
    240
    A. Webmaster
    Jan 28, 2004
  5. divya

    Passing variables to frames

    divya, Feb 24, 2005, in forum: Perl Misc
    Replies:
    4
    Views:
    152
    Gunnar Hjalmarsson
    Feb 24, 2005
Loading...

Share This Page