http://www.perlmonks.org?node_id=665183


in reply to Re: Cannot clear cgi param (if it's really what I need to do)
in thread Cannot clear cgi param (if it's really what I need to do)

Hi kyle,

I came accross the '-override', but as I

print hidden(); instead of print $cgi->hidden()

it has no effect.

Thank you.

Have a nice day

"There is only one good, namely knowledge, and only one evil, namely ignorance." Socrates

Replies are listed 'Best First'.
Re^3: Cannot clear cgi param (if it's really what I need to do)
by kyle (Abbot) on Jan 30, 2008 at 19:08 UTC

    This does not appear to be the case.

    BEGIN { $ENV{QUERY_STRING} = 'mode=orig'; $ENV{REQUEST_METHOD} = 'GET'; } use CGI qw( hidden ); print hidden( 'mode', 'second arg' ), "\n"; print hidden( -name => 'mode', -default => 'default', ), "\n"; print hidden( -name => 'mode', -default => 'forced', -override => 1 ), "\n"; __END__ <input type="hidden" name="mode" value="orig" /> <input type="hidden" name="mode" value="orig" /> <input type="hidden" name="mode" value="forced" />

    Perhaps your code is doing something different from what you think it's doing?

      Hi kyle,

      As I print other hidden params

      print hidden( 'day' , $day );

      I printed this one

      print hidden( 'mode' , 'save' , 1 );

      and this don't work.

      print hidden( -name => 'mode' , -default => 'save' , -override => 1);

      works, but I don't understand why ?

      Have a nice day.

      "There is only one good, namely knowledge, and only one evil, namely ignorance." Socrates
        When you don't use the named parameter style, the first argument is the field name and the rest are values for the field.
        print hidden( 'mode' , 'save' , 1 );
        is short for
        print hidden( -name => 'mode' , -default => [ 'save', 1 ]);