Hi,
We use something like following at the Perl level to check for radio button
and check boxes that are not passed from HTML form. 

#----------------------------------

# At CGI save level, receive all the params using CGI object.

my $cgi = $self->query();
my @array       = $cgi->param;
        
# Make a key value pair of normal HTML elements from form and also extract
checkbox group and multi-list selection box 
# values in to a single comma separated value. 
        
my %form = map { $_ => scalar @{[ $cgi->param( $_ ) ]} == 1 ? $cgi->param(
$_ ) : join(",", $cgi->param( $_ ) ) } @array;

my $form = setHTMLTagValues(\%form};

foreach (sort keys %$form)
{
        # Save to database or do whatever you want to do.....
}       

#----------------------------------


sub setHTMLTagValues
{
        my $hash = shift;

        # You can add different profiles for each forms used here.

        my @array = ('Radio1','Radio2','Check1');

        # Set any value so that the script finds the name of the missing
HTML tag while processing.

        map{ $hash->[EMAIL PROTECTED] = '' if(!exists( $hash->{$_} )); } @array;
        
        return($hash);
}

HTH
Thanks

Sibu Thomas
Liaison Inernational Inc
Watertown, MA



-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Alex Brelsfoard
Sent: Thursday, May 26, 2005 10:56 AM
To: Joel Gwynn
Cc: boston-pm@mail.pm.org
Subject: Re: [Boston.pm] Empty radio and checkboxes not passed to perl scr
ipt

> Forgive my ignorance, but why would it be a problem not to have these?
>

Picture a web form that is some sort of a survey.  When that survey is
submit the perl script writes out the answers onto a file.  That file is tab
delimited.
Now picture the first person going to the form and filling everything out,
including all checkboxes and radio buttons.
Now the second person comes along and chooses not to fill in a radio button.
When that form's information is sent to the script it is missing that radio
buttons field name and therefore misses that tab, and all the results get
skewed.  Information becomes invalid, people get unhappy, heads are lost,
cats and dogs start getting married, and all the worlds wine turns into bags
of turnips.
In other words, not terribly fun.
--Alex

> On 5/26/05, Philipp Hanes <[EMAIL PROTECTED]> wrote:
>> > The following ideas are options I would _not_ like to follow if 
>> > possible:
>> > - set a default checkbox or redio button (so something is always 
>> > filled in).
>> > - use a hidden field to list of all the fields in the form.
>> > - have the perl script read the HTML code from the page and make 
>> > its own list.
>> > - javascript
>> >
>> > I kinda understand why the browser doesn't send this information 
>> > (no value to hold onto), but there HAS to be a solution for this.
>> > Seems frightfully
>> > stupid not to have an easy option out there for something like this.
>>
>> No solution other than the ones you mentioned, that I'm aware of.
>> What we've done is generally a hidden field that gets fiddled with 
>> via JavaScript when the checkbox is changed.  Then the back-end code 
>> just looks at the hidden field, and can be totally oblivious to 
>> what's really going on in the HTML.
>> Yup, seems stupid to me, each time I run into it again, too.
>> I'd be curious if someone has come up with something better.
>> Doubtful, though.
>> good luck                               philipp
>>
>> _______________________________________________
>> Boston-pm mailing list
>> Boston-pm@mail.pm.org
>> http://mail.pm.org/mailman/listinfo/boston-pm
>>
>
> _______________________________________________
> Boston-pm mailing list
> Boston-pm@mail.pm.org
> http://mail.pm.org/mailman/listinfo/boston-pm
>

 
_______________________________________________
Boston-pm mailing list
Boston-pm@mail.pm.org
http://mail.pm.org/mailman/listinfo/boston-pm
 
_______________________________________________
Boston-pm mailing list
Boston-pm@mail.pm.org
http://mail.pm.org/mailman/listinfo/boston-pm

Reply via email to