Author image Terrence Brannon


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


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:


It would really help to read over the docs at:

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 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" ]
  ]; in the distro contains a complete example which generates the 3-level hierarchy shown at


None by default, selectchain can be exported on request.



Terrence Brannon, <<gt>


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.