http://qs321.pair.com?node_id=968539


in reply to Re: How to extract a form data in cgi perl
in thread How to extract a form data in cgi perl

You don't have to have values for options. On form submit the value for the element is the string value between the opening and closing option tags. So that's not it.

If you take the action out and leave everything else intact, you can see the GET values in the URL bar in your browser:

<form name="frmStatusFilter" method="GET"> Choose Filter:<select name="StatusFilterSelect" onChange="frmStatusFil +ter.submit()"> <option>Show with status</option> <option>Show all</option> </select> </form>
When I do that, I see the value set. That means your CGI code had something wrong. I created a file called mycgi.pl and put it in the same directory as the HTML file, resulting in this for the form definition:
<form name="frmStatusFilter" method="GET" action="mycgi.pl">

You would, of course, leave yours as the same, since you have a specific CGI URL already defined.

Then I worked on the contents of mycgi.pl and added some missing CGI method calls:

my $q = new CGI; my $status = $q->param('StatusFilterSelect'); print $q->header(), $q->start_html('Status Report'), $q->h1('Status Report'), $q->p("status is $status"), $q->end_html();

You left off the header, which is very important to tell the browser that what's coming back is an HTML page. You also want the start_html to emit the html, head, and body tags. The h1 is purely optional, the p is for your data, and the end_html closes off the body and html tags to make everything neat, tidy, and validateable.