Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re^2: How to get unselected radio_group() items after submitting form

by slugger415 (Monk)
on Mar 08, 2011 at 17:45 UTC ( [id://892044]=note: print w/replies, xml ) Need Help??


in reply to Re: How to get unselected radio_group() items after submitting form
in thread How to get unselected radio_group() items after submitting form

Hm, not quite what I was looking for -- that removes the saved selections as well. To clarify, here's my initial view:
label 1: ( )c ( )r ( )t ( )s label 2: ( )c ( )r ( )t ( )s label 3: ( )c ( )r ( )t ( )s label 4: ( )c ( )r ( )t ( )s label 5: ( )c ( )r ( )t ( )s
A user makes selections on the first three:
label 1: (x)c ( )r ( )t ( )s label 2: ( )c (x)r ( )t ( )s label 3: ( )c (x)r ( )t ( )s label 4: ( )c ( )r ( )t ( )s label 5: ( )c ( )r ( )t ( )s
They click submit, and this appears:
label 1: (x)c ( )r ( )t ( )s label 2: ( )c (x)r ( )t ( )s label 3: ( )c (x)r ( )t ( )s label 4: (x)c ( )r ( )t ( )s label 5: (x)c ( )r ( )t ( )s

Note that 4 and 5 now have c selected.

If I use print $query->defaults('Restore to Default');, it removes all selections from all rows.

What I want it is to look like view #2 above, after clicking submit:

label 1: (x)c ( )r ( )t ( )s label 2: ( )c (x)r ( )t ( )s label 3: ( )c (x)r ( )t ( )s label 4: ( )c ( )r ( )t ( )s label 5: ( )c ( )r ( )t ( )s
thanks, Scott

Replies are listed 'Best First'.
Re^3: How to get unselected radio_group() items after submitting form
by wallisds (Beadle) on Mar 08, 2011 at 18:31 UTC

    Ah. Thanks for the sample. Also, thanks to Wind for narrowing the issue to the start_form/end_form because I was not able to replicate the problem before using <form>.

    Anyway, here is my new solution:
    I updated file name to $f to match original sample.

    if ($which_radio_button eq q{}) { $query->delete("$f"); }

    see sample:

    #!/usr/bin/perl -w use CGI; use strict; my $query = CGI->new; print $query->header; my $button = $query->param('submit'); my @fs = ('test1.txt', 'test2.txt', 'test3.txt', 'test4.txt'); if ($button eq "save") { foreach my $f (@fs) { my $which_radio_button = $query->param("$f"); print "for $f you selected $which_radio_button<BR>\n"; if ($which_radio_button eq q{}) { $query->delete($f); } } #$query->delete_all(); } print "<html><body>"; print $query->start_form(); #print $query->defaults('Restore to Defaults'); foreach my $f (@fs) { print $query->radio_group(-name=>$f, -value=>['c','r','t','s'], -default=>'-'); print "<BR>"; } print $query->defaults('Return to default'); print $query->submit(-name=>'submit',-value=>'save'); print $query->end_form(); print "</body></html>";

    If you add $query->delete($f); where $f is empty you will achieve your desired result, as shown in the above example.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://892044]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others goofing around in the Monastery: (11)
As of 2024-04-19 16:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found