1#!/usr/local/bin/perl 2 3use CGI; 4$query = new CGI; 5print $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 18if (!$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 32sub 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> 40EOF 41 ; 42 exit 0; 43} 44 45sub print_html_header { 46 print $query->start_html($TITLE); 47} 48 49sub print_end { 50 print qq{<P><hr><A HREF="../index.html" TARGET="_top">More Examples</A>}; 51 print $query->end_html; 52} 53 54sub 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 71sub 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 82