| 1 | #!/usr/local/bin/perl |
| 2 | |
| 3 | use CGI; |
| 4 | $query = new CGI; |
| 5 | print $query->header; |
| 6 | $TITLE="Frameset Example"; |
| 7 | |
| 8 | # We use the path information to distinguish between calls |
| 9 | # to the script to: |
| 10 | # (1) create the frameset |
| 11 | # (2) create the query form |
| 12 | # (3) create the query response |
| 13 | |
| 14 | $path_info = $query->path_info; |
| 15 | |
| 16 | # If no path information is provided, then we create |
| 17 | # a side-by-side frame set |
| 18 | if (!$path_info) { |
| 19 | &print_frameset; |
| 20 | exit 0; |
| 21 | } |
| 22 | |
| 23 | # If we get here, then we either create the query form |
| 24 | # or we create the response. |
| 25 | &print_html_header; |
| 26 | &print_query if $path_info=~/query/; |
| 27 | &print_response if $path_info=~/response/; |
| 28 | &print_end; |
| 29 | |
| 30 | |
| 31 | # Create the frameset |
| 32 | sub print_frameset { |
| 33 | $script_name = $query->script_name; |
| 34 | print <<EOF; |
| 35 | <html><head><title>$TITLE</title></head> |
| 36 | <frameset cols="50,50"> |
| 37 | <frame src="$script_name/query" name="query"> |
| 38 | <frame src="$script_name/response" name="response"> |
| 39 | </frameset> |
| 40 | EOF |
| 41 | ; |
| 42 | exit 0; |
| 43 | } |
| 44 | |
| 45 | sub print_html_header { |
| 46 | print $query->start_html($TITLE); |
| 47 | } |
| 48 | |
| 49 | sub print_end { |
| 50 | print qq{<P><hr><A HREF="../index.html" TARGET="_top">More Examples</A>}; |
| 51 | print $query->end_html; |
| 52 | } |
| 53 | |
| 54 | sub print_query { |
| 55 | $script_name = $query->script_name; |
| 56 | print "<H1>Frameset Query</H1>\n"; |
| 57 | print $query->startform(-action=>"$script_name/response",-TARGET=>"response"); |
| 58 | print "What's your name? ",$query->textfield('name'); |
| 59 | print "<P>What's the combination?<P>", |
| 60 | $query->checkbox_group(-name=>'words', |
| 61 | -values=>['eenie','meenie','minie','moe']); |
| 62 | |
| 63 | print "<P>What's your favorite color? ", |
| 64 | $query->popup_menu(-name=>'color', |
| 65 | -values=>['red','green','blue','chartreuse']), |
| 66 | "<P>"; |
| 67 | print $query->submit; |
| 68 | print $query->endform; |
| 69 | } |
| 70 | |
| 71 | sub print_response { |
| 72 | print "<H1>Frameset Result</H1>\n"; |
| 73 | unless ($query->param) { |
| 74 | print "<b>No query submitted yet.</b>"; |
| 75 | return; |
| 76 | } |
| 77 | print "Your name is <EM>",$query->param(name),"</EM>\n"; |
| 78 | print "<P>The keywords are: <EM>",join(", ",$query->param(words)),"</EM>\n"; |
| 79 | print "<P>Your favorite color is <EM>",$query->param(color),"</EM>\n"; |
| 80 | } |
| 81 | |