RICHARD FERNANDEZ am Sunday, 24. September 2006 02:15:
> > $query->param(-name=>'foo', -value=>'the value');
>
> Make that line  $query->param(-name=>'foo', -value=>"$the_value");
>
> Then somwhere at the start where you get the variables;
>
> my $name = $query->param('name')||'';
>
> if ($name =~/mary/i){ $the_value = "Howdy Mary" }
>
>
>
> How you do it depends on your workflow/logic
>
>
>
> Owen

Hello Richard

> Thanks for your response, but I still don't get it. I type my name into
> the box and click
> Submit, but it doesn't change!
>
> Could you please clarify?
>
> Here's my code:
>
> #!/usr/bin/perl -w
> # This script is the example at the top of the CGI pod --richf;
> use strict;
> use CGI;
>
> my $html = new CGI;
>
> my $new_value;

  my $new_value='';

> my $name = $html -> param('name') or '';

This should read:

  my $name = $html->param('name') || '';

due to the precedence of the operators: '||' > '=' > 'or'
See

perldoc perlop

('' is never assigned to $new_value with 'or')


And please don't use spaces around '->' :-)

> if ($name =~ /richf/i) {
>    $new_value = 'John';
> }
>
> print $html -> header,
>       $html -> start_html('A Simple Example'),
>       $html -> h1('A Simple Example'),
>       $html -> start_form,
>
>       "What's your name?",
>       $html -> textfield(-name  => 'name'),

Here's the source of your problem: the textfield value is missing:

  $html->textfield(-name  => 'name', -value => $new_value),

>       $html -> p,
>       "What's the combination?",
>       $html -> p,
>       $html ->       checkbox_group(-name=>'words',
>                            -values=>['eenie','meenie','minie','moe'],

btw, above line can be written shorter:

  -values=>[ qw( eenie meenie minie moe ) ],

>                            -defaults=>['eenie','minie']),
>       $html -> p,
>       "What's your favorite color?",
>       $html -> popup_menu(-name=>'color',
> -values=>['red','green','blue','chartreuse']),
>       $html -> p,
>       $html -> submit,
>       $html -> end_form,
>       $html -> hr;
>
>
>
> $html -> param(-name => 'name', -value => $new_value);

This will only change the value in the request object, but not in the form!
(also part of your problem)

> print $html -> end_html;

Hope this helps!

Dani

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to