PEAR logo

HTML_QuickForm_advmultiselect : La Référence



Combiner plusieurs éléments

Figure 9.5. Utilisation multiple avec deux présentations différentes

Utilisation multiple avec deux présentations différentes

Dans cet exemple, voici nos objectifs :

  • utiliser deux éléments advmultiselect sur la même page.
  • utiliser deux présentations différentes.

Exemple 9.5. Deux présentations différentes sur la même page

  1. <?php
  2. /**
  3. * Mixed advMultiSelect HTML_QuickForm elements.
  4. * Two widgets on the same page/form with each its own javascript function
  5. *
  6. * @version    $Id: qfams_multiple_1.php,v 1.3 2007/01/05 15:35:33 farell Exp $
  7. * @author     Laurent Laville <pear@laurent-laville.org>
  8. * @package    HTML_QuickForm_advmultiselect
  9. * @subpackage Examples
  10. * @access     public
  11. * @example    examples/qfams_multiple_1.php
  12. *             qfams_multiple_1 source code
  13. * @link       http://www.laurent-laville.org/img/qfams/screenshot/multiple1.png
  14. *             screenshot (Image PNG, 566x392 pixels) 8.82 Kb
  15. */
  16.  
  17. require_once 'HTML/QuickForm.php';
  18. require_once 'HTML/QuickForm/advmultiselect.php';
  19.  
  20. $form = new HTML_QuickForm('amsMultiple1');
  21. $form->removeAttribute('name');        // XHTML compliance
  22.  
  23. $fruit_array = array(
  24.     'apple'     =>  'Apple',
  25.     'orange'    =>  'Orange',
  26.     'pear'      =>  'Pear',
  27.     'banana'    =>  'Banana',
  28.     'cherry'    =>  'Cherry',
  29.     'kiwi'      =>  'Kiwi',
  30.     'lemon'     =>  'Lemon',
  31.     'lime'      =>  'Lime',
  32.     'tangerine' =>  'Tangerine',
  33. );
  34.  
  35. $car_array = array(
  36.     'dodge'     =>  'Dodge',
  37.     'chevy'     =>  'Chevy',
  38.     'bmw'       =>  'BMW',
  39.     'audi'      =>  'Audi',
  40.     'porsche'   =>  'Porsche',
  41.     'kia'       =>  'Kia',
  42.     'subaru'    =>  'Subaru',
  43.     'mazda'     =>  'Mazda',
  44.     'isuzu'     =>  'Isuzu',
  45. );
  46.  
  47. // rendering with all default options
  48. $form->addElement('header', null, 'Advanced Multiple Select: default layout ');
  49.  
  50. $ams1 =& $form->addElement('advmultiselect', 'cars', 'Cars:', $car_array);
  51.  
  52. if (isset($_POST['cars'])) {
  53.     $form->setDefaults(array('cars' => $_POST['cars']));
  54. }
  55.  
  56. // rendering with css selectors and API selLabel(), setButtonAttributes()
  57. $form->addElement('header', null, 'Advanced Multiple Select: custom layout ');
  58.  
  59. $ams2 =& $form->addElement('advmultiselect', 'fruit', null, $fruit_array,
  60.                            array('size' => 5,
  61.                                  'class' => 'pool', 'style' => 'width:200px;'
  62.                                 )
  63. );
  64. $ams2->setJsElement('fruit_');
  65. $ams2->setLabel(array('Fruit:', 'Available', 'Selected'));
  66. $ams2->setButtonAttributes('add',    array('value' => 'Add', 'name' => 'add1',
  67.                                            'class' => 'inputCommand'
  68. ));
  69. $ams2->setButtonAttributes('remove', array('value' => 'Remove', 'name' => 'remove1',
  70.                                            'class' => 'inputCommand'
  71. ));
  72.  
  73. if (isset($_POST['fruit'])) {
  74.     $form->setDefaults(array('fruit' => $_POST['fruit']));
  75. }
  76.  
  77. $form->addElement('submit', 'send', 'Send');
  78.  
  79. ?>
  80. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  81.     "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  82. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  83. <head>
  84. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  85. <title>HTML_QuickForm::advMultiSelect multiple example 1</title>
  86. <style type="text/css">
  87. <!--
  88. body {
  89.   background-color: #FFF;
  90.   font-family: Verdana, Arial, helvetica;
  91.   font-size: 10pt;
  92. }
  93.  
  94. table.pool {
  95.   border: 0;
  96.   background-color: #339900;
  97.   width:450px;
  98. }
  99. table.pool th {
  100.   font-size: 80%;
  101.   font-style: italic;
  102.   text-align: left;
  103. }
  104. table.pool select {
  105.   color: white;
  106.   background-color: #006600;
  107. }
  108.  
  109. .inputCommand {
  110.     background-color: #d0d0d0;
  111.     border: 1px solid #7B7B88;
  112.     width: 7em;
  113.     margin-bottom: 2px;
  114. }
  115. // -->
  116. </style>
  117. <script type="text/javascript">
  118. <!--
  119. <?php
  120. echo $ams1->getElementJs();
  121.  
  122. echo $ams2->getElementJs();
  123. ?>
  124.  -->
  125. </script>
  126. </head>
  127. <body>
  128. <?php
  129. if ($form->validate()) {
  130.     $clean = $form->getSubmitValues();
  131.  
  132.     echo '<pre>';
  133.     print_r($clean);
  134.     echo '</pre>';
  135. }
  136. $form->display();
  137. ?>
  138. </body>
  139. </html>
HTML_QuickForm_advmultiselect : La Référence v 1.4.0 : 9 Juin 2007