Voici comment réaliser un hierselect avec HTML_QuickForm sur plusieurs champs.

C'est simple, il suffit de lire le code ;)

$this->addElement('header', 'untitre', 'Liste des prets');
		// --- Tableaux des options du 1er select
		$A_option1	= array(
						0 => 'Selectionner',
						1 => 'Livre', 
						2 => 'DVD', 
						3 => 'Jeux');
		// --- Tableaux des options du 2eme select
		$A_option2	= array(
						1 => array(
							0 => 'Selectionner',
							69 => 'Stephen KING',
							51 => 'Jules VERNES'),
						2 => array(
							0 => 'Selectionner',
							17 => 'Peter JACKSON',
							21 => 'Steven SPIELBERG'),
						3 => array(
							0 => 'Selectionner',
							312 => 'FPS',
							78 => 'Autre')
						);
		// --- Tableaux des options du 3eme select
		$A_option3	= array(
						1 => array(
							69 => array(
								0 => 'Selectionner',
								1 => 'Le fléau',
								2 => 'Tempete'),
							51 => array(
								0 => 'Selectionner',
								1 => 'Le tour du monde en 80 jours',
								2 => 'L\'ile mystérieuse')
							),
						2 => array(
							17 => array(
								0 => 'Selectionner',
								1 => 'Le seigneur des anneaux',
								2 => 'King Kong'
							),
							21 => array(
								0 => 'Selectionner',
								1 => 'E.T.',
								2 => 'La guerre des mondes'),
							),
						3 => array(
							312 => array(
								0 => 'Selectionner',
								1 => 'Half Life',
								2 => 'FEAR'
							),
							78 => array(
								0 => 'Selectionner',
								1 => 'NFS',
								2 => 'TrackMania'
							)
						)
					);
		
		// --- creer l'element QuickFrom
		$O_hierselect	= $this->createElement('hierselect', '', '');
 
		// --- Ajoute les tablmeaux d'options
		$O_hierselect->setOptions(array($A_option1, $A_option2, $A_option3));
		
		// --- Ajoute l'element dans le formulaire
		$this->addElement($O_hierselect, 'mon_hierselect');
 

Ce qui donne :