Source for file qfams_custom_5.php
Documentation is available at qfams_custom_5.php
* Custom advMultiSelect HTML_QuickForm element
* that allows to manage sort of select boxes.
* @version $Id: qfams_custom_5.php,v 1.5 2008/04/26 17:25:59 farell Exp $
* @author Laurent Laville <pear@laurent-laville.org>
* @package HTML_QuickForm_advmultiselect
* @example examples/qfams_custom_5.php
* qfams_custom_5 source code
* @link http://www.laurent-laville.org/img/qfams/screenshot/custom5.png
* screenshot (Image PNG, 609x318 pixels) 9.94 Kb
require_once 'HTML/QuickForm.php';
require_once 'HTML/QuickForm/advmultiselect.php';
$form = new HTML_QuickForm ('amsCustom5');
$form->removeAttribute ('name'); // XHTML compliance
// same as default element template but wihtout the label (in first td cell)
<!-- BEGIN error --><span style="color: #ff0000;">{error}</span><br /><!-- END error -->{element}
// replace default element template with label, because submit button have no label
$renderer = & $form->defaultRenderer ();
$renderer->setElementTemplate ($withoutLabel, 'validate');
'tangerine' => 'Tangerine',
// decides either both select list will have their elements be arranged or not
if (isset ($_POST['autoArrange'])) {
if ($_POST['autoArrange'] == 'A') {
} elseif ($_POST['autoArrange'] == 'D') {
// rendering with QF renderer engine and template system
$form->addElement ('header', null ,
'For demo purpose only: must be validate to be active');
$arrange[] = & $form->createElement ('radio', null , null , 'Auto arrange asc.', 'A');
$arrange[] = & $form->createElement ('radio', null , null , 'Auto arrange desc.', 'D');
$arrange[] = & $form->createElement ('radio', null , null , 'No auto arrange', 'N');
$form->addGroup ($arrange, 'autoArrange', 'Sort list:');
$form->setDefaults (array ('autoArrange' => 'N'));
$form->addElement ('submit', 'validate', 'Validate');
$form->addElement ('header', null , 'Advanced Multiple Select: custom layout ');
$ams = & $form->addElement ('advmultiselect', 'fruit', null , $fruit_array,
array ('class' => 'pool', 'style' => 'width:200px;'),
$ams->setLabel (array ('Fruit:', 'Available', 'Selected'));
$ams->setButtonAttributes ('add' , 'class=inputCommand');
$ams->setButtonAttributes ('remove' , 'class=inputCommand');
$ams->setButtonAttributes ('moveup' , 'class=inputCommand');
$ams->setButtonAttributes ('movedown', 'class=inputCommand');
// template for a dual multi-select element shape
<!-- BEGIN label_2 --><tr><th>{label_2}</th><!-- END label_2 -->
<!-- BEGIN label_3 --><th> </th><th>{label_3}</th></tr><!-- END label_3 -->
{add}<br />{remove}<br /><br />{moveup}<br />{movedown}<br />
$ams->setElementTemplate ($template);
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
// fruit default values already selected without any end-user actions
$form->setDefaults (array ('fruit' => array ('kiwi','lime')));
} elseif (isset ($_POST['fruit'])) {
// fruit end-user selection
$form->setDefaults (array ('fruit' => $_POST['fruit']));
$buttons[] = & $form->createElement ('submit', null , 'Submit');
$buttons[] = & $form->createElement ('reset', null , 'Reset');
$form->addGroup ($buttons, null , ' ');
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>HTML_QuickForm::advMultiSelect custom example 5</title>
font-family: Verdana, Arial, helvetica;
background-color: #339900;
background-color: #006600;
<?php echo $ams->getElementJs (false ); ?>
$clean = $form->getSubmitValues ();
Documentation generated on Sat, 26 Apr 2008 14:30:11 -0400 by phpDocumentor 1.4.0. PEAR Logo Copyright © PHP Group 2004.
|