19.11. Creating Sticky WidgetsProblemYou want the default values for the fields in your form to be the last values submitted. For instance, you want to create a search form like AltaVista ( http://altavista.digital.com/ ) where the keywords you're searching with appear in the search dialog above the results. SolutionUse CGI.pm's HTML shortcuts to create your form, which will automatically provide previous values as defaults: print textfield("SEARCH"); # previous SEARCH value is the default DiscussionExample 19.8 is a simple script for querying the list of users currently logged in. Example 19.8: who.cgi#!/usr/bin/perl -wT # who.cgi - run who(1) on a user and format the results nicely $ENV{IFS}=''; $ENV{PATH}='/bin:/usr/bin'; use CGI qw(:standard); # print search form print header(), start_html("Query Users"), h1("Search"); print start_form(), p("Which user?", textfield("WHO")); submit(), end_form(); # print results of the query if we have someone to look for $name = param("WHO"); if ($name) { print h1("Results"); $html = ''; # call who and build up text of response foreach (`who`) { next unless /^$name\s/o; # only lines matching $name s/&/&/g; # escape HTML s/</</g; s/>/>/g; $html .= $_; } # nice message if we didn't find anyone by that name $html = $html || "$name is not logged in"; print pre($html); } print end_html();
The call to See AlsoThe documentation for the standard CGI module; Recipe 19.4 ; Recipe 19.7 |
|