PEAR is discontinued

This is a static archive preserving historical releases and metadata. No new packages or updates will be published. For updates to existing packages, or to publish new packages, please use Composer and Packagist.

Home » HTML » HTML_QuickForm » Bug #7099

Choice of element name causes hierselect failure

Details

Submitted2006-03-12 13:50 UTC
Frommccarty at io dot com
StatusBogus
PackageHTML_QuickForm
PHP Version5.1.2
OSWinXP
Roadmaps(Not assigned)

Comments

[2006-03-12 13:50 UTC] mccarty at io dot com

Description:
------------
I discovered something interesting. The Javascript generated for a hierselect element seems to be sensitive to the element name. In particular, using the element name "role" seems to cause problems. If I define a hierselect element as follows:

$main['UC'] = "Unit Commissioner";
$main['ADC'] = "Assistant District Commissioner";
$main['DC'] = "District Commissioner";

$adcareas = array();
$adcareas['Area 1'] = "Area 1";
$adcareas['Area 2'] = "Area 2";
$adcareas['Area 3'] = "Area 3";
$adcareas['Area 4'] = "Area 4";
$adcareas['Area 5'] = "Area 5";
$adcareas['Area 6'] = "Area 6";
$adcareas['Area 7'] = "Area 7";
$adcareas['Area 8'] = "Area 8";
$adcareas['Area 9'] = "Area 9";
$adcareas['Area 10'] = "Area 10";

$secondary['UC']['0'] = "n/a";
$secondary['DC']['0'] = "n/a";

foreach($adcareas as $key=>$value) {
$secondary['ADC'][$key] = $value;
}

$opts[] = $main;
$opts[] = $secondary;

// Interesting... If I name the element "role" it doesn't work correctly.
$hs =& $form->addElement('hierselect', 'role', 'Commissioner Role: ',
null, '  <b>ADC Area: </b>');
$hs->setOptions($opts);

...then the following Javascript is (incorrectly) generated:

_hs_options['role'] = [

];
_hs_defaults['role'] = ['UC', 'UC'];
//]]>

However, if I change the name of the hierselect element to something else, say "commrole", this Javascript is generated:

_hs_options['commrole'] = [
{ 'UC': { '0': 'n/a' }, 'DC': { '0': 'n/a' }, 'ADC': { 'Area 1': 'Area 1', 'Area 2': 'Area 2', 'Area 3': 'Area 3', 'Area 4': 'Area 4', 'Area 5': 'Area 5', 'Area 6': 'Area 6', 'Area 7': 'Area 7', 'Area 8': 'Area 8', 'Area 9': 'Area 9', 'Area 10': 'Area 10' } }
];
_hs_defaults['commrole'] = ['UC', 0];
//]]>

"role" isn't defined anywhere else in the script...