Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: Re: Re: CGI.pm being funny?

by chipmunk (Parson)
on Feb 06, 2002 at 05:37 UTC ( #143556=note: print w/ replies, xml ) Need Help??


in reply to Re: Re: CGI.pm being funny?
in thread CGI.pm checkbox problem?

The reason for the behavior you are seeing is that @predefined contains an array reference, rather than a plain value. Since you don't show how you defined @predefined, it is impossible to say where you went wrong. Suffice it to say that:

print $q->checkbox_group ( -name=>'predefined', -linebreak=>'true', -values=>@predefined, -defaults=>param('predefined'), );
is not the right way to pass values to a CGI method. @predefined will be flattened into the argument list. If @predefined contains a single value, you've lucked out and it will work okay. If @predefined contains an odd number of values, the first will be taken as the value for the -values key, and the rest will be taken as separate key/value pairs. Worst case, if @predefined contains an even number of values, all the remaining explicit key/value pairs will be shifted by one, so that the keys are used as values and vice versa.


Comment on Re: Re: Re: CGI.pm being funny?
Download Code
Re: Re: Re: Re: CGI.pm being funny?
by xtype (Deacon) on Feb 06, 2002 at 05:52 UTC
    I am splitting a "text" field in a database by newline.
    Each line is a different question.
    Each question is an element in @predefined. currently there are 30 elements.
    Everythings prints fine, and all values/labels match up.
    Just to test your odd vs. even theory, I added a question (new line to the text field).
    Everything still matches up. No shifting, no nastiness. Everythings works.
    Don't know what to say.

    update: Zaxo maybe, or maybe I am just crazy, or .. yeah, maybe. hrmph!
      Thanks, but I what I really want is to see the actual code where you define @predefined.

      Barring that, I would be interested to see what you get from this: print "@predefined\n";
      My expectation is that you will see something like: ARRAY(0x100eb340)
      because @predefined contains a single element which is a reference to an array.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (9)
As of 2015-07-04 10:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (59 votes), past polls