NAME

Javascript::Select::Chain - generate arbitrary depth DHTML select pulldowns

ABSTRACT

This Perl package makes it easy to generate a series of pulldowns whose content is a function of the selection in the previous pulldown. It is a Perl API to a Javascript package written by Xin Yang. His Javascript package is included, but you can consult his website for information beyond this documentation:

http://www.yxscripts.com/

DESCRIPTION

It would really help to read over the docs at:

http://www.yxscripts.com/cs/chainedselects.html

If you read this, then you will have the concepts and vocabulary necessary to understand and use this Perl wrapper to his library.

However, I will do my best to explain everything you need to know here.

selectchain( $model , $options )

selectchain() takes two arguments. $model is a hash reference with two keys, data and listgroupname. The value of the key listgroupname is exactly what is referred to in the original docs. See Car1.pm in the distribution for a sample usage. The value of the key data is an array reference in which each element completely represents one pulldown in the chain. Summarily, here is $model at the highest level:

{
 data          =>  [ $level1, $level2, $level3 ],
 listgroupname => $listgroupname                  # e.g., 'vehicles'
}

Now, we go into how $level1, $level2, ... $levelN looks. In words, each level is an array reference in which each element is an array reference. The "inner" array reference looks like this:

[  $list_name, $option_text, $option_value => $next_list_name ]

There is also a final optional argument which indicates that this item in the pulldown is the default selected one.

Here is a sample level, completely described:

my $level1 =
 [
  [ "car-makers", "Select a maker", "",         "dummy-list"  ],
  [ "car-makers", "Toyota",         "Toyota",   "Toyota"       ],
  [ "car-makers", "Honda",          "Honda",    "Honda"        ],
  [ "car-makers", "Chrysler",       "Chrysler", "Chrysler", 1  ],
  [ "car-makers", "Dodge",          "Dodge",    "Dodge" ],
  [ "car-makers", "Ford",           "Ford",     "Ford" ]
 ];

Car1.pm in the distro contains a complete example which generates the 3-level hierarchy shown at www.xyscripts.com.

EXPORT

None by default, selectchain can be exported on request.

SEE ALSO

http://www.yxscripts.com

AUTHOR

Terrence Brannon, <tbone@cpan.org<gt>

COPYRIGHT AND LICENSE

Copyright (C) 2004 by Terrence Brannon

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.5 or, at your option, any later version of Perl 5 you may have available.