PEAR Manual
Prev |  | Next

# Class Summary HTML_QuickForm_hierselect

Class Summary HTML_QuickForm_hierselect -- Class to dynamically create chained HTML Select elements, each select changes the content of the next.

## Description

Class to dynamically create "chained" HTML Select elements. Choosing an option in the first <select> changes the content of the second select and so on.

This element is considered as a group. Selects will be named groupName[0], groupName[1], ...

Example 41-1. Creating a hierselect element based on values from a database table
    require_once 'HTML/QuickForm.php';
    $form = new HTML_QuickForm('example');

    $form->setDefaults(array('test' => array('4','15')));
    $sel =& $form->addElement('hierselect', 'test', 'Test:', null, '/');

    $mainOptions = $db->getAssoc('select pkparent, par_desc from parent');

    $result = $db->query("select fk_parent, pkchild, chi_desc from child");
    while ($result->fetchInto($row)) {
        $secOptions[$row[0]][$row[1]] = $row[2];
    }
    // Using setMainOptions and setSecOptions is now deprecated
    // use setOptions.

    $sel->setOptions(array($mainOptions, $secOptions));

    $form->display();

Creating more than two select elements is just as simple.

Example 41-2. Creating a hierselect element with three select elements
    require_once 'HTML/QuickForm.php';
    $form = new HTML_QuickForm('example');

    $select1[0] = 'Pop';
    $select1[1] = 'Classical';
    $select1[2] = 'Funeral doom';

    // second select
    $select2[0][0] = '--- Artist ---';
    $select2[0][1] = 'Red Hot Chil Peppers';
    $select2[0][2] = 'The Pixies';

    $select2[1][0] = '--- Artist ---';
    $select2[1][1] = 'Wagner';
    $select2[1][2] = 'Strauss';

    $select2[2][0] = '--- Artist ---';
    $select2[2][1] = 'Pantheist';
    $select2[2][2] = 'Skepticism';

    // Create a third select with prices for the cds
    $select3[0][1][0] = '15.00$';
    $select3[0][2][1] = '17.00$';
    $select3[1][1][0] = '15.00$';
    $select3[1][2][1] = '17.00$';
    $select3[2][1][0] = '15.00$';
    $select3[2][2][1] = '17.00$';

    // Create the Element
    $sel =& $form->addElement('hierselect', 'cds', 'Choose CD:');

    // And add the selection options
    $sel->setOptions(array($select1, $select2, $select3));

    $form->display();

## Class Trees for HTML_QuickForm_hierselect

- HTML_Common

  - HTML_QuickForm_element

    - HTML_QuickForm_group

      - HTML_QuickForm_hierselect

HTML_QuickForm_hierselect Inherited Methods

Table 41-1. Inherited from HTML_QuickForm_group

Method Name | Summary
--- | ---
Constructor HTML_QuickForm_group::HTML_QuickForm_group() | Class constructor
HTML_QuickForm_group::accept() | Accepts a renderer
HTML_QuickForm_group::exportValue() | As usual, to get the group's value we access its elements and call
HTML_QuickForm_group::getElementName() | Returns the element name inside the group such as found in the html form
HTML_QuickForm_group::getElements() | Gets the grouped elements
HTML_QuickForm_group::getFrozenHtml() | Returns the value of field without HTML tags
HTML_QuickForm_group::getGroupType() | Gets the group type based on its elements Will return 'mixed' if elements contained in the group are of different types.
HTML_QuickForm_group::getName() | Returns the group name
HTML_QuickForm_group::getValue() | Returns the value of the group
HTML_QuickForm_group::onQuickFormEvent() | Called by HTML_QuickForm whenever form event is made on this element
HTML_QuickForm_group::setElements() | Sets the grouped elements
HTML_QuickForm_group::setName() | Sets the group name
HTML_QuickForm_group::setValue() | Sets values for group's elements

Table 41-2. Inherited from HTML_QuickForm_element

Method Name | Summary
--- | ---
Constructor HTML_QuickForm_element::HTML_QuickForm_element() | Class constructor
HTML_QuickForm_element::accept() | Accepts a renderer
HTML_QuickForm_element::apiVersion() | Returns the current API version
HTML_QuickForm_element::exportValue() | Returns a 'safe' element's value
HTML_QuickForm_element::freeze() | Freeze the element so that only its value is returned
HTML_QuickForm_element::getFrozenHtml() | Returns the value of field without HTML tags
HTML_QuickForm_element::getLabel() | Returns display text for the element
HTML_QuickForm_element::getName() | Returns the element name
HTML_QuickForm_element::getType() | Returns element type
HTML_QuickForm_element::getValue() | Returns the value of the form element
HTML_QuickForm_element::isFrozen() | Returns whether or not the element is frozen
HTML_QuickForm_element::onQuickFormEvent() | Called by HTML_QuickForm whenever form event is made on this element
HTML_QuickForm_element::setLabel() | Sets display text for the element
HTML_QuickForm_element::setName() | Sets the input field name
HTML_QuickForm_element::setPersistantFreeze() | Sets wether an element value should be kept in an hidden field when the element is frozen or not
HTML_QuickForm_element::setValue() | Sets the value of the form element
HTML_QuickForm_element::unfreeze() | Unfreezes the form element

Prev | Home | Next
constructor HTML_QuickForm_hiddenselect() | Up | constructor HTML_QuickForm_hierselect()