home *** CD-ROM | disk | FTP | other *** search
/ Enter 2004 June / ENTER.ISO / files / xampp-win32-1.4.5-installer.exe / xampp / QuickHtml_example.php < prev    next >
Encoding:
PHP Script  |  2004-03-24  |  5.6 KB  |  147 lines

  1. <?php /** $Id: QuickHtml_example.php,v 1.1 2003/08/25 16:41:02 jrust Exp $ */ ?>
  2. <html>
  3.   <title>QuickForm Using QuickHtml Renderer</title>
  4. <body>
  5. <?php
  6. /**
  7. * Another example of usage for PEAR class HTML_QuickForm using the
  8. * QuickHtml renderer.
  9. *
  10. * This renderer has three main distinctives: an easy way to create
  11. * custom-looking forms, the ability to separate the creation of form
  12. * elements from their display, and being able to use QuickForm in
  13. * widget-based template systems.  See the online documentation for more
  14. * info.
  15. *
  16. * @author      Jason Rust <jrust@rustyparts.com> 
  17. */
  18.  
  19. require_once ("HTML/QuickForm.php");
  20. require_once ("HTML/QuickForm/Renderer/QuickHtml.php");
  21. $form =& new HTML_QuickForm('tmp_form','POST');
  22. // get our render
  23. $renderer =& new HTML_QuickForm_Renderer_QuickHtml();
  24. // create the elements
  25. createElements($form);
  26. // set their values
  27. setValues($form);
  28.  
  29. // Do the magic of creating the form.  NOTE: order is important here: this must
  30. // be called after creating the form elements, but before rendering them.
  31. $form->accept($renderer);
  32.  
  33. // Because radio buttons have the same name we have to pass the value
  34. // as well as the name in order to get the correct one.
  35. $tmp_radio = ' Yes: ' . $renderer->elementToHtml('tmp_radio', 'Y');
  36. $tmp_radio .= ' No: ' . $renderer->elementToHtml('tmp_radio', 'N');
  37.  
  38. $tmp_submit = $renderer->elementToHtml('tmp_reset');
  39. $tmp_submit .= $renderer->elementToHtml('tmp_submit');
  40.  
  41. // Make our form table using some of the widget functions.
  42. $data = '
  43. <table border="0" cellpadding="0" cellspacing="2" bgcolor="#eeeeee" width="500">
  44.   <tr style="font-weight: bold;">' . createHeaderCell('QuickForm using QuickHtml Renderer', 'center', 2) . '</tr>
  45.   <tr>' . createFormCell($renderer->elementToHtml('tmp_textarea'), 'center', 2) . '</tr>
  46.   <tr>' . createHeaderCell('Text box (element is part of an array)', 'left') .
  47.           createHeaderCell('Yes or no?', 'right') . '</tr>
  48.   <tr>' . createFormCell($renderer->elementToHtml('tmp_text[array]'), 'left') .
  49.           createFormCell($tmp_radio, 'right') . '</tr>
  50.   <tr>' . createHeaderCell('Phone Number (a group)', 'left') .
  51.           createHeaderCell('Advanced Check Box?', 'right') . '</tr>
  52.   <tr>' . createFormCell($renderer->elementToHtml('phone_num'), 'left') .
  53.           createFormCell($renderer->elementToHtml('tmp_checkbox'), 'right') . '</tr>
  54.   <tr>' . createHeaderCell('Today is:', 'left') .
  55.           createHeaderCell('Multiple Select', 'right') . '</tr>
  56.   <tr>' . createFormCell($renderer->elementToHtml('tmp_date'), 'left') .
  57.           createFormCell($renderer->elementToHtml('tmp_multipleSelect[0]'), 'right') . '</tr>
  58.   <tr>' . createFormCell($tmp_submit, 'center', 2) . '</tr>
  59. </table>';
  60.  
  61. // Wrap the form and any remaining elements (i.e. hidden elements) into the form tags.
  62. echo $renderer->toHtml($data);
  63.  
  64. echo "\n<HR> <b>Submitted Values: </b><br />\n";
  65. echo "<pre>";
  66. print_r($_POST);
  67. // {{{ createElements()
  68.  
  69. // creates all the fields for the form
  70. function createElements(&$form)
  71. {
  72.     // select list array
  73.     $selectListArray = array(
  74.         'windows'   => 'Windows',
  75.         'linux'     => 'Linux',
  76.         'irix'      => 'Irix',
  77.         'mac'       => 'Mac',
  78.     );
  79.  
  80.     $form->addElement('text','tmp_text[array]',null,array('size' => 10));
  81.     $form->addElement('hidden','tmp_hidden', 'value');
  82.     $form->addElement('textarea','tmp_textarea',null,array('cols' => 50, 'rows' => 10, 'wrap' => 'virtual'));
  83.     $form->addElement('radio','tmp_radio',null,null,'Y');
  84.     $form->addElement('radio','tmp_radio',null,null,'N');
  85.     $text = array();
  86.     $text[] =& HTML_QuickForm::createElement('text','',null,array('size' => 3));
  87.     $text[] =& HTML_QuickForm::createElement('text','',null,array('size' => 4));
  88.     $text[] =& HTML_QuickForm::createElement('text','',null,array('size' => 3));
  89.     $form->addGroup($text, 'phone_num', null, '-');
  90.     $form->addElement('advcheckbox','tmp_checkbox',null,'Please Check',null,array('not checked', 'checked'));
  91.     $form->addElement('date', 'tmp_date', null, array('format'=>'D d M Y'));
  92.     $form->addElement('select', 'tmp_multipleSelect[0]', null, $selectListArray, array('multiple' => 'multiple', 'size' => 4));
  93.     $form->addElement('reset','tmp_reset','Reset Form');
  94.     $form->addElement('submit','tmp_submit','Submit Form');
  95.     $form->addRule('tmp_text[array]','Text length must be greater than 10','minlength',10,'client');
  96. }
  97.  
  98. // }}}
  99. // {{{ setValues()
  100.  
  101. // sets all the default and constant values for the form
  102. function setValues(&$form)
  103. {
  104.     // Fills with some defaults values
  105.     $defaultValues['tmp_textarea']  = '
  106. Test Text Area
  107.  
  108. With line breaks';
  109.     $defaultValues['phone_num'] = array('513', '123', '3456');
  110.     $defaultValues['tmp_checkbox'] = 'checked';
  111.     $defaultValues['tmp_multipleSelect'][0] = array('linux', 'mac');
  112.     // Fill with some constant values.
  113.     // Constant is not overridden by POST, GET, or defaultValues
  114.     // when values are being filled in
  115.     $constantValues['tmp_radio'] = 'Y';
  116.     $constantValues['tmp_date'] = time();
  117.     $constantValues['tmp_text']['array'] = 'constant';
  118.  
  119.     $form->setDefaults($defaultValues);
  120.     $form->setConstants($constantValues);
  121. }
  122.  
  123. // }}}
  124. // {{{ createHeaderCell()
  125.  
  126. // creates a header cell
  127. function createHeaderCell($text, $align, $colspan = 1)
  128. {
  129.     return '<td align="' . $align . '" width="50%" bgcolor="#cccccc" colspan="' . $colspan . '">' . $text . '</td>';
  130. }
  131.  
  132. // }}}
  133. // {{{ createFormCell()
  134.  
  135. // creates a form cell based on the element name
  136. function createFormCell($elementHtml, $align, $colspan = 1)
  137. {
  138.     return '<td align="' . $align . '" width="50%" colspan="' . $colspan . '">' . 
  139.            $elementHtml .
  140.            '</td>';
  141. }
  142.  
  143. // }}}
  144. ?>
  145. </body>
  146. </html>
  147.