"連結した" HTML Select 要素を動的に作成するためのクラスです。 最初の <select> を選択すると 2 番目の選択肢の内容が変化し、 それ以降も同様になります。
この要素はグループの一種と考えられます。各 select 要素の名前は groupName[0], groupName[1], ... となります。
データベースのテーブルの内容をもとに hierselect 要素を作成する
<?php
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];
}
// setMainOptions および setSecOptions は廃止予定なので
// setOptions を使用してください
$sel->setOptions(array($mainOptions, $secOptions));
$form->display();
?>
2 つより多くの select 要素を組み合わせるのも、これと同様です。
3 つの select 要素からなる hierselect 要素を作成する
<?php
require_once 'HTML/QuickForm.php';
$form = new HTML_QuickForm('example');
$select1[0] = 'Pop';
$select1[1] = 'Classical';
$select1[2] = 'Funeral doom';
// 2 番目の 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';
// 3 番目の select で、CD の価格を指定します
$select3[0][0][0] = '--- Choose the artist ---';
$select3[0][1][0] = '15.00$';
$select3[0][2][1] = '17.00$';
$select3[1][0][0] = '--- Choose the artist ---';
$select3[1][1][0] = '15.00$';
$select3[1][2][1] = '17.00$';
$select3[2][0][0] = '--- Choose the artist ---';
$select3[2][1][0] = '15.00$';
$select3[2][2][1] = '17.00$';
// 要素を作成します
$sel =& $form->addElement('hierselect', 'cds', 'Choose CD:');
// そして選択肢を追加します
$sel->setOptions(array($select1, $select2, $select3));
$form->display();
?>
HTML_Common
HTML_QuickForm_hierselect
HTML_QuickForm_hierselect が継承しているメソッド
メソッド名 | 概要 |
---|---|
コンストラクタ HTML_QuickForm_group::HTML_QuickForm_group() | クラスのコンストラクタ |
HTML_QuickForm_group::accept() | レンダラを受け入れる |
HTML_QuickForm_group::exportValue() | 通常は、グループの値を取得するには個々の要素に対してアクセスする |
HTML_QuickForm_group::getElementName() | html フォーム中に見られる、グループ内の要素名を返す |
HTML_QuickForm_group::getElements() | グループ化された要素群を取得する |
HTML_QuickForm_group::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す |
HTML_QuickForm_group::getGroupType() | グループ内の要素の型を取得する。複数の型の要素から構成されている場合は 'mixed' を返す |
HTML_QuickForm_group::getName() | グループ名を返す |
HTML_QuickForm_group::getValue() | グループの値を返す |
HTML_QuickForm_group::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる |
HTML_QuickForm_group::setElements() | グループ化された要素群を設定する |
HTML_QuickForm_group::setName() | グループ名を設定する |
HTML_QuickForm_group::setValue() | グループの要素の値を設定する |
メソッド名 | 概要 |
---|---|
Constructor HTML_QuickForm_element::HTML_QuickForm_element() | クラスのコンストラクタ |
HTML_QuickForm_element::accept() | レンダラを受け入れる |
HTML_QuickForm_element::apiVersion() | 現在の API のバージョンを返す |
HTML_QuickForm_element::exportValue() | '安全な' 要素の値を返す |
HTML_QuickForm_element::freeze() | 要素を凍結し、その値のみを返す |
HTML_QuickForm_element::getFrozenHtml() | HTML タグを含めずにフィールドの値を返す |
HTML_QuickForm_element::getLabel() | 要素の表示テキストを返す |
HTML_QuickForm_element::getName() | 要素名を返す |
HTML_QuickForm_element::getType() | 要素の型を返す |
HTML_QuickForm_element::getValue() | フォーム要素の値を返す |
HTML_QuickForm_element::isFrozen() | 要素が凍結されているかどうかを返す |
HTML_QuickForm_element::onQuickFormEvent() | この要素上でイベントが発生した場合に HTML_QuickForm からコールされる |
HTML_QuickForm_element::setLabel() | 要素の表示テキストを設定する |
HTML_QuickForm_element::setName() | 入力フィールドの名前を設定する |
HTML_QuickForm_element::setPersistantFreeze() | 要素の値を、それが凍結されているかどうかにかかわらず hidden フィールドに保持し続けるかどうかを設定する |
HTML_QuickForm_element::setValue() | フォーム要素の値を設定する |
HTML_QuickForm_element::unfreeze() | フォーム要素の凍結を解除する |