#drawform.cgi #!/usr/local/bin/perl
#output form fields that "remember" last state of being.
use CGI;
$cgiobject=new CGI;
$cgiobject->use_named_parameters;
#retrieve cookie data
$cookie_data=$cgiobject->cookie("searchform");
if ($cookie_data)
{ &crumble_cookie;
$greeting="Welcome back!" }
else { &init;
$greeting="Hello First Timer!" }
print $cgiobject->header;
print $cgiobject->start_html(-title=>'Search form',-bgcolor=>'white');
print "<H2>$greeting</H2>";
&output_form;
print $cgiobject->end_html;
sub init()
#initialize form field values
{ $search_term="Enter search term here.";
$result_style="brief";
$result_perpage=50;
}
sub output_form()
#construct and output the form HTML
{ $theform=$cgiobject->startform(-name=>'searchform',
-method=>'get',
-action=>'/cgi-bin/dosearch.cgi');
#create text input field
$theform.="Search: ";
$theform.=$cgiobject->textfield(-name=>'search_term',
-size=>30,
-default=>$search_term);
#create two radio buttons
$theform.="<BR>Results type:";
$theform.=$cgiobject->radio_group(-name=>'result_style',
-values=>["brief","verbose"],
-default=>$result_style);
#create select box
$theform.="<BR>Results per page:<BR>";
$theform.=$cgiobject->scrolling_list(-name=>'result_perpage',
-values=>[25,50,100],
-default=>$result_perpage,
-size=>3,
-multiple=>'false');
#create submit and reset buttons
$theform.="<BR><BR>";
$theform.=$cgiobject->submit(-label=>'Submit');
$theform.=$cgiobject->reset(-label=>'Clear');
$theform.=$cgiobject->endform;
print $theform
}
sub crumble_cookie()
#parses cookie data into variables and values
{ @vars=split(/\|/,$cookie_data);
foreach $var (@vars)
{ @pair=split(/=/,$var);
$evalstr='$'.$pair[0].'=';
$evalstr.="\"$pair[1]\"";
eval ($evalstr);
}
}
|