Description
"連結した" 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();
?>