|
ulf-wendel.de   
|
|
 Home < PHP Projekte  < Forms  < Form (300k)    |       |  
Print Version    
---
|
|
 Home 
 PHP Projekte 
    PHPDoc 
    Forms 
       Form (300k) 
       Flow Layout 
       API Docs 
       CVS - XML Demo I 
       CVS - XML Demo II 
       Demo: calendar 
       Demo: checkbox 
       Demo: calendar 
       Demo: combo 
       Demo: date 
       Demo: defaults 
       Demo: file 
       Demo: fileupload 
       Demo: hidden 
       Demo: image 
       Demo: password 
       Demo: radio 
       Demo: select 
       Demo: submit 
       Demo: tag 
       Demo: text 
       Demo: textarea 
    IT[X] Template 
    Userland Cache 
    Gtext 
    Menu 3 
    Columbo 
 PHP Schulung 
 Technik der Site 
 Büchertipps 
 Fotografie 
 Airbrush 
 Kontakt 
 Stuff 

OOH Form Rewrite - Features


Form
Element type Validation rules Element What's new
 
select custom validator Advanced validation: every element can define a callback validation function that gets called before the default validation takes place. The "custom validator" can control the validation rules of itself and all other elements. This works on server side and on the client side with JavaScript. Check the source of this page to see the API.
 
custom date Array Custom element.
 
Cooool stuff...
 
textedit not available
Font   Size
New element - experimental.

MSHTML Editor. IE 4+ only.

 
Date and Calendar
 
date intro
Year Month Day
New element, format: "Ymd". "Now" button.

"Now" button requires JavaScript.


date - - / / / / Format: Y-m-d D/F/l/A/M, english options

date Full featured format: aAdDFhHgGijlmnMswYyz, german options, preselected date.

calendar not available
Month   Year  
New element - experimental.

Every (HTML) element of a complex form element can be adressed. E.g. $form->showElement("calendar", "now") to get the "today" button.


 
Textinput
 
combo length 3+
New element.

Some JavaScript to add the input at the beginning of the option list of the select box.


text length 3+,
Regexp ^[0-9]+[\.,]?[0-9]*$

textarea length 10-40
Regexp ^[a-zA-Z ]+$

password length 5+

password length 3+,
Regexp ^[0-9]+[\.,]?[0-9]*$
 
Fileupload
 
fileupload length 1+
Regexp [\.[html|htm]$]
Fileupload plus PHP's MAX_FILE_SIZE hidden field.
 
Checkbox and radio button
 
checkbox

radio New attribute "elname" gives access to a single radio button in a group of radio buttons with the same HTML name (attribute: "name").

radio
Demonstration of the "elname" attribute.
 
Buttons
 
submit

image
 
Alpha
 
tree intro option New element - experimental, alpha!
 
Serverside validation
 
All together:

A password must have 5 to 20 characters. Enter at least 3 numbers. Only numbers are allowed, no other characters. Enter at least 3 numbers. Only numbers are allowed. Sorry, no other characters allowed but a-z/A-Z. I'm afraid the filetype is incorrect. It's not a HTML File, is it? ArrayIt's invalid to choose the intro message...

Error Messages
pass
A password must have 5 to 20 characters. 
numbers
Enter at least 3 numbers. Only numbers are allowed, no other characters. 
secret_numbers
Enter at least 3 numbers. Only numbers are allowed. 
textarea
Sorry, no other characters allowed but a-z/A-Z. 
fileupload
I'm afraid the filetype is incorrect. It's not a HTML File, is it? 
combo
ArrayIt's invalid to choose the intro message...

This page

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
  <title>Example of Form</title>
</head>

<body>
<?php
  
// whereever your source files reside...
  
define(FORM_INCLUDE_DIR"c:/www/apache/form/");
  
// include the loader
  
include(FORM_INCLUDE_DIR "form_loader.inc");
  
// include the core form files
  
form_loader("form");
  
  
// include your form class
  
include(FORM_INCLUDE_DIR "example_form.inc");
  
  
// create form object
  
$form = new example_form;
  
  
// opening <form> tag - JavaScript form name: myform
  
$form->Start("myform");
  
  
// add form elements
  
$form->Init();
  
  
/*
  // Combo
  // Note: API will change! It's far to complex now
  if (!isset($options))
    $options = $form->getOptions("combo");
    
  $newoption = $form->getNewComboOption("combo");
  if ("" != $newoption) {
  
    $form->setOptions( array( "combo" => $options["combo"] ) );
    $form->addOption("combo", "[new] " . $newoption, $newoption);
    $form->setValues( array("combo" => $newoption) );
    $options = $form->getOptions("combo");
    
  } else {
    $form->setOptions( array( "combo" => $options["combo"] ) );
  }
  */
  
  
?>
  <table border="0" cellspacing="4" cellpadding="4">
    <tr>
      <td colspan="3" align="left" valign="top"><br><b>Form</b></td>
    </tr>
    <tr>
      <td colspan="3" align="left" valign="top">
        <table width="100%">
          <tr bgcolor="#DCE1EF">
            <td align="left" valign="top"><b>Element type</b></td>
            <td align="left" valign="top"><b>Validation rules</b></td>
            <td align="left" valign="top"><b>Element</b></td>
            <td align="left" valign="top"><b>What's new</b></td>
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
          <tr>
            <td align="left" valign="top">select</td>
            <td align="left" valign="top">custom validator</td>
            <td align="left" valign="top">
              <?php $form->showElement("dependencies"); ?>
            </td>
            <td align="left" valign="top">
              Advanced validation: every element can define a callback validation
              function that gets called before the default validation takes place.
              The "custom validator" can control the validation rules of itself and
              all other elements. This works on server side and on the client side
              with JavaScript. Check the source of this page to see the API.
            </td>
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
          <tr>
            <td align="left" valign="top">custom date</td>
            <td align="left" valign="top"></td>
            <td align="left" valign="top">
              <?php $form->showElement("custom_date"); ?>
            </td>
            <td align="left" valign="top">
              Custom element.
            </td>
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
          <tr bgcolor="#DCE1EF">
            <td colspan="4"><b>Cooool stuff...</b></td>          
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
          <tr>
            <td align="left" valign="top">textedit</td>
            <td align="left" valign="top">not available</td>
            <td align="center" valign="top" width="550" bgcolor="#DCE1EF">
              <table>
                <tr>
                  <td align="left" valign="middle">
                    <b>Font</b> <?php $form->showElement("textedit""font"); ?>&nbsp;
                    <b>Size</b> <?php $form->showElement("textedit""fontsize"); ?>
                  </td>
                </tr>
              </table>
              <table>
                <tr>
                  <td align="left" valign="middle">
                    <?php 
                      $form
->showElement("textedit""bold");
                      
$form->showElement("textedit""italic");
                      
$form->showElement("textedit""underline"); 
                      
$form->showElement("textedit""strike"); 
                    
?>
                  </td>
                  <td align="left" valign="middle">
                    <?php 
                      $form
->showElement("textedit""left");
                      
$form->showElement("textedit""right");
                      
$form->showElement("textedit""center"); 
                    
?>
                  </td>
                  <td align="left" valign="middle">
                    <?php
                      $form
->showElement("textedit""indent");
                      
$form->showElement("textedit""outdent");
                    
?>
                  </td>
                  <td align="left" valign="middle">
                    <?php 
                      $form
->showElement("textedit""txcolor_yellow");
                      
$form->showElement("textedit""txcolor_orange");
                      
$form->showElement("textedit""txcolor_red"); 
                      
$form->showElement("textedit""txcolor_green"); 
                      
$form->showElement("textedit""txcolor_blue"); 
                      
$form->showElement("textedit""txcolor_#0f0f0f"); 
                      
$form->showElement("textedit""txcolor_white"); 
                    
?>
                  </td>
                  <td align="left" valign="middle">
                    <?php 
                      $form
->showElement("textedit""bgcolor_wheat");
                      
$form->showElement("textedit""bgcolor_peachpuff");
                      
$form->showElement("textedit""bgcolor_darksalmon");
                      
$form->showElement("textedit""bgcolor_darksalmon");
                      
$form->showElement("textedit""bgcolor_darkseagreen");
                      
$form->showElement("textedit""bgcolor_skyblue");
                      
$form->showElement("textedit""bgcolor_whitesmoke");
                      
$form->showElement("textedit""bgcolor_white");
                    
?>
                  </td>
                </tr>
              </table>
              <table>
                <tr>
                  <td align="left" valign="middle">
                    <?php 
                      $form
->showElement("textedit""link");
                      
$form->showElement("textedit""unlink");
                    
?>
                  </td>
                  <td align="left" valign="middle">
                    <?php  $form->showElement("textedit""paragraph"); ?>
                  </td>
                  <td align="left" valign="middle">
                    <?php
                      $form
->showElement("textedit""ol");
                      
$form->showElement("textedit""ul");
                    
?>
                  </td>
                  <td align="left" valign="middle">
                    <?php
                      $form
->showElement("textedit""em");
                      
$form->showElement("textedit""pre");
                    
?>
                  </td>
                  <td align="left" valign="middle">
                    <?php
                      $form
->showElement("textedit""h1");
                      
$form->showElement("textedit""h2");
                      
$form->showElement("textedit""h3");
                    
?>
                  </td>
                  <td align="left" valign="middle">
                    <?php
                      $form
->showElement("textedit""sub");
                      
$form->showElement("textedit""sup");
                    
?>
                  </td>
                </tr>
              </table>
              <table>
                <tr>
                  <td align="left" valign="middle">
                    <?php $form->showElement("textedit""cut"); ?>
                    <?php  $form->showElement("textedit""copy"); ?>
                    <?php  $form->showElement("textedit""paste"); ?>
                    <?php  $form->showElement("textedit""delete");?>
                  </td>
                  <td align="left" valign="middle">
                    <?php  $form->showElement("textedit""selectall");?>
                    <?php $form->showElement("textedit""unselect");?>
                  </td>
                  <td align="left" valign="middle">
                    <?php $form->showElement("textedit""overwrite"); ?>
                  </td>
                </tr>
                <tr>
              </table>
              <table>
                  <td align="left" valign="top">
                    <?php $form->showElement("textedit""iframe"); ?>
                  </td>
                </tr>
              </table>
            </td>
            <td align="left" valign="top">
              New element - experimental.
              <p>
              MSHTML Editor. IE 4+ only.
            </td>
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
          <tr bgcolor="#DCE1EF">
            <td colspan="4"><b>Date and Calendar</b></td>          
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
          <tr>
            <td align="left" valign="top">date</td>
            <td align="left" valign="top">intro</td>
            <td align="left" valign="top">
              <table>
                <tr>
                  <td align="left" valign="top">
                    Year <?php $form->showElement("date_en2""Y"); ?>
                  </td>
                  <td align="left" valign="top">
                    Month <?php $form->showElement("date_en2""m"); ?>
                  </td>
                  <td align="left" valign="top">
                    Day <?php $form->showElement("date_en2""d"); ?>
                  </td>
                  <td align="left" valign="top">
                    <?php $form->showElement("date_en2""now"); ?>
                  </td>
                </tr>
              </table>
            </td>
            <td align="left" valign="top">
              New element, format: "Ymd". "Now" button.
              <p>
              "Now" button requires JavaScript.
            </td>
          </tr>
          <tr>
            <td colspan="4"><hr color="#DCE1EF"></td>
          </tr>
          <tr>
            <td align="left" valign="top">date</td>
            <td align="left" valign="top"></td>
            <td align="left" valign="top">
              <?php $form->showElement("date_en"); ?>
            </td>
            <td align="left" valign="top">
              Format: Y-m-d D/F/l/A/M, english options
            </td>
          </tr>
          <tr>
            <td colspan="4"><hr color="#DCE1EF"></td>
          </tr>
          <tr>
            <td align="left" valign="top">date</td>
            <td align="left" valign="top"></td>
            <td align="left" valign="top">
              <?php $form->showElement("date_de"); ?>
            </td>
            <td align="left" valign="top">
              Full featured format: aAdDFhHgGijlmnMswYyz, german options, preselected date.
            </td>
          </tr>
          <tr>
            <td colspan="4"><hr color="#DCE1EF"></td>
          </tr>
          <tr>
            <td align="left" valign="top">calendar</td>
            <td align="left" valign="top">not available</td>
            <td align="left" valign="top">
              <table border>
                <tr bgcolor="#DCE1EF">
                  <td align="center" valign="top">
                    Month  <?php $form->showElement("calendar""month"); ?>&nbsp;
                  </td>
                  <td align="center" valign="top">                  
                    Year <?php $form->showElement("calendar""year"); ?>&nbsp;
                  </td>
                </tr>
                <tr>
                  <td align="center" valign="top" colspan="2">
                    <?php $form->showElement("calendar""calendar"); ?>
                  </td>
                </tr>
                <tr bgcolor="#DCE1EF">
                  <td colspan="2" align="center" valign="top">
                    <?php $form->showElement("calendar""prev"); ?>
                    <?php $form->showElement("calendar""now"); ?>
                    <?php $form->showElement("calendar""next"); ?>
                  </td>
                </tr>
              </table>
            </td>
            <td align="left" valign="top">
              New element - experimental.
              <p>
              Every (HTML) element of a complex form element can be adressed. 
              E.g. $form->showElement("calendar", "now") to get the "today" button.
            </td>
          </tr>
          <tr>
            <td colspan="4"><hr color="#DCE1EF"></td>
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
          <tr bgcolor="#DCE1EF">
            <td colspan="4"><b>Textinput</b></td>          
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
          <tr>
            <td align="left" valign="top">combo</td>
            <td align="left" valign="top">length 3+</td>
            <td align="left" valign="top">
              <?php $form->showElement("combo""select"); ?><br>
              <?php $form->showElement("combo""input"); $form->showElement("combo""add"); ?>
            </td>
            <td align="left" valign="top">
              New element.
              <p>
              Some JavaScript to add the input at the beginning of the option list
              of the select box.
            </td>
          </tr>
          <tr>
            <td colspan="4"><hr color="#DCE1EF"></td>
          </tr>
          <tr>
            <td align="left" valign="top">text</td>
            <td align="left" valign="top">length 3+,<br>Regexp ^[0-9]+[\.,]?[0-9]*$</td>
            <td align="left" valign="top">
              <?php $form->showElement("numbers"); ?>
            </td>
            <td align="left" valign="top">
            </td>
          </tr>
          <tr>
            <td colspan="4"><hr color="#DCE1EF"></td>
          </tr>
          <tr>
            <td align="left" valign="top">textarea</td>
            <td align="left" valign="top">length 10-40<br>Regexp ^[a-zA-Z ]+$</td>
            <td align="left" valign="top">
              <?php $form->showElement("textarea"); ?>
            </td>
            <td align="left" valign="top">
            </td>
          </tr>
          <tr>
            <td colspan="4"><hr color="#DCE1EF"></td>
          </tr>
          <tr>
            <td align="left" valign="top">password</td>
            <td align="left" valign="top">length 5+</td>
            <td align="left" valign="top">
              <?php $form->showElement("pass"); ?>
            </td>
            <td align="left" valign="top">
            </td>
          </tr>
          <tr>
            <td colspan="4"><hr color="#DCE1EF"></td>
          </tr>
          <tr>
            <td align="left" valign="top">password</td>
            <td align="left" valign="top">length 3+,<br>Regexp ^[0-9]+[\.,]?[0-9]*$</td>
            <td align="left" valign="top">
              <?php $form->showElement("secret_numbers"); ?>
            </td>
            <td align="left" valign="top">
            </td>
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
          <tr bgcolor="#DCE1EF">
            <td colspan="4"><b>Fileupload</b></td>          
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
          <tr>
            <td align="left" valign="top">fileupload</td>
            <td align="left" valign="top">length 1+<br>Regexp [\.[html|htm]$]</td>
            <td align="left" valign="top">
              <?php $form->showElement("fileupload"); ?>
            </td>
            <td align="left" valign="top">
              Fileupload plus PHP's MAX_FILE_SIZE hidden field.
            </td>
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
          <tr bgcolor="#DCE1EF">
            <td colspan="4"><b>Checkbox and radio button</b></td>          
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
          <tr>
            <td align="left" valign="top">checkbox</td>
            <td align="left" valign="top"></td>
            <td align="left" valign="top">
              <?php $form->showElement("check"); ?>
            </td>
            <td align="left" valign="top">
            </td>
          </tr>
          <tr>
            <td colspan="4"><hr color="#DCE1EF"></td>
          </tr>
          <tr>
            <td align="left" valign="top">radio</td>
            <td align="left" valign="top"></td>
            <td align="left" valign="top">
              <?php $form->showElement("radio"); ?>
            </td>
            <td align="left" valign="top">
            New attribute "elname" gives access to a single radio button in a group of
            radio buttons with the same HTML name (attribute: "name").
            </td>
          </tr>
          <tr>
            <td colspan="4"><hr color="#DCE1EF"></td>
          </tr>
          <tr>
            <td align="left" valign="top">radio</td>
            <td align="left" valign="top"></td>
            <td align="left" valign="top">
              <?php $form->showElement("radio2[0]"); ?><br>
              <?php $form->showElement("radio2[1]"); ?>
            </td>
            <td align="left" valign="top">
            Demonstration of the "elname" attribute.
            </td>
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
          <tr bgcolor="#DCE1EF">
            <td colspan="4"><b>Buttons</b></td>          
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
          <tr>
            <td align="left" valign="top">submit</td>
            <td align="left" valign="top"></td>
            <td align="left" valign="top">
              <?php $form->showElement("plainsubmit"); ?>
            </td>
            <td align="left" valign="top">
            </td>
          </tr>
          <tr>
            <td colspan="4"><hr color="#DCE1EF"></td>
          </tr>
          <tr>
            <td align="left" valign="top">image</td>
            <td align="left" valign="top"></td>
            <td align="left" valign="top">
              <?php $form->showElement("imagesubmit"); ?>
            </td>
            <td align="left" valign="top">
            </td>
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
          <tr bgcolor="#DCE1EF">
            <td colspan="4"><b>Alpha</b></td>          
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
          <tr>
            <td align="left" valign="top">tree</td>
            <td align="left" valign="top">intro option</td>
            <td align="left" valign="top">
              <?php $form->showElement("treeview"); ?>
            </td>
            <td align="left" valign="top">
              New element - experimental, alpha!
            </td>
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
          <tr bgcolor="#DCE1EF">
            <td colspan="4"><b>Serverside validation</b></td>          
          </tr>
          <tr>
            <td colspan="4">&nbsp;</td>
          </tr>
        </table>
      </td>
    </tr>
    
    <?php
    
// get error messages
    
list($msg$flags) = $form->validate();
    
    if (
"" != $msg) {
      
      
printf('<tr><td colspan=3><font volor="red">All together:<p>%s</font></td></tr>'$msg);
      
      
reset($flags);
      print 
'<tr bgcolor="#f0f0f0"><td colspan=3><font color="red"><b>Error Messages</b></font></td></tr>';
      while (list(
$name$message)=each($flags)) 
        
printf('<tr bgcolor="#f0f0f0"><td align=left valign=top><pre>%s</pre></td><td align=left valign=top colspan=2><pre>%s</pre></td></tr>%s',
                  
$name,
                  
$message,
                  
"\n"
              
);
    } 
    
?> 
  </table>
  <?php
  
// closing </form> tag
  
$form->Finish();

    print 
"<hr><h1>This page</h1>";
    
highlight_string(str_replace("\t""  "implode(""file("./index.php4"))));
    print 
"<hr><h1>Form definition</h1>";
     
highlight_string(str_replace("\t""  "implode(""file("./example_form.inc"))));
    
?>
    
</body>
</html>

Form definition

<?php
// This is your form definition. It's a class extending form which 
// provides a method Init and optionally custom validators.
//
// - requiered form definition:   void Init(void) 
// - optional custom validators:  void Example_Validator(void)
// 
class example_form extends form {
  
  
// define/build the form
  
function Init() {
    
    
$this->setDefaults( array (  "textsize" => 20"textmaxlength" => 100) );
    
    
// make sure to escape special characters!
    
$this->setJSError("Ooops some errors...\n\n""\n\nPlease correct them...");
    
    
// define elements
    
$this->addElement(
                        array  (
                                  
"name"          => "dependencies",
                                  
"type"          => "select",
                                  
"options"        => array ( 
                                                              
"0"  => "validate everything",
                                                              
"1" => "don't validate pass"
                                                              
"5"  => "don't validate pass, numbers and secret_numbers",
                                                              
"7"  => "don't care on length_e of pass and valid_e of textarea"
                                                           
),
                                  
"value"          => "-1",
                                  
                                  
"intro"          => array ( "-1" => "Custom validators..."),
                                  
                                  
"size"          => 1,
                                  
"frozen"        => false,
                                  
"multiple"      => false,
                                  
                                  
"validator"      => "DependencieValidator",
                                  
"js_validator"  => 'function DependencieValidator(formobj) {

  var i, v;
  
  //  get the value of the select box dependencies
  with (document.forms[formobj.name].elements["dependencies"]) 
    for (i = 0; i < options.length; i++)
      if (options[i].selected) {
        v = options[i].value;
        break;
      }
  
  switch (v) {
    case "1":
      // do not validate the element pass
      formobj.val_off("pass", "lri");
      break;
    
    case "5":
      // do not validate pass, numbers and secret_numbers
      formobj.val_off("pass", "lri");
      formobj.val_off("numbers", "lri");
      formobj.val_off("secret_numbers", "lri");
      break;
      
    case "7":
      // turn off textarea regexp and pass length validation
      formobj.val_off("textarea", "r");
      formobj.val_off("pass", "l");
      break;
  }
  
}'
                              
)
                      );  

    
$this->addElement( array( "name"  => "custom_date"type => "custom_date") );
    
    
$this->addElement(
                      array (
                              
"name"  => "textedit",
                              
"type"  => "textedit",
                              
                              
"iframe_src"  => "form_textedit_iframe.html",
                              
                              
"iframe_width"      => 540,
                              
"iframe_height"      => 100,
                              
"iframe_border"      => 1,
                              
"iframe_scrolling"  => "auto",
                              
"iframe_warning"    => "Sorry IE 4+ only."                              
                          
)
                    );                      
    
$this->addElement(  
                      array (  
                              
"name"  => "calendar",
                              
"type"  => "calendar",
                              
                              
"year"  => 2000,
                              
"month"  => 8,
                              
"day"    => 23,
                              
                              
"now"    => "today",
                              
"prev"  => " < ",
                              
"next"  => " > "
                      
)
                    );

    
$this->addElement(  array  (
                                  
"name"      =>  "pass",
                                  
"type"      =>  "password",
                                  
"value"      =>  "",
                                  
"size"      =>  10,
                                  
                                  
"readonly"  =>  false,
                                  
"accesskey"  =>  "a",
                                  
"tabindex"  =>   2,
                                  
                                  
"minlength"  =>   5,
                                  
"maxlength"  =>  20,
                                  
"length_e"  => "A password must have 5 to 20 characters."
                              
)
                    );
    
    
$this->addElement(  array  (
                                  
"name"          =>   "numbers",
                                  
"type"          =>   "text",
                                  
"frozen"        =>  false,
                                  
                                  
"valid_e"        => "Only numbers are allowed, no other characters.",
                                  
"valid_regex"    => "^[0-9]+[\.,]?[0-9]*$",
                                  
                                  
"minlength"      => 3,
                                  
"length_e"      => "Enter at least 3 numbers."
    
                              
)
                      );
                      
    
$this->addElement(  array  (
                                  
"name"          => "secret_numbers",
                                  
"type"          => "password",
                                  
"frozen"        => false,
                                  
                                  
"valid_e"        => "Only numbers are allowed.",
                                  
"valid_regex"    => "^[0-9]+[\.,]?[0-9]*$",
                                  
                                  
"minlength"      => 3,
                                  
"length_e"      => "Enter at least 3 numbers."
                              
)
                      );                  

    
$this->addElement(  array  (
                                  
"name"          => "textarea",
                                  
"type"          => "textarea",
                                  
"frozen"        => false,
                                  
"value"          => "I wish the sun would shine.",
                                  
"cols"          => 40,
                                  
"rows"          => 2,
                                  
                                  
"valid_e"        => "Sorry, no other characters allowed but a-z/A-Z.",
                                  
"valid_regex"    => "^[a-zA-Z ]+$",
                                  
"valid_icase"    => true,
                                  
                                  
"minlength"      => 10,
                                  
"maxlength"      => 40,
                                  
"length_e"      => "Type between 10 and 40 characters."
                              
)
                      );

    
$this->addElement(
                        array (
                                  
"name"          => "fileupload",
                                  
"type"          => "fileupload",
                                  
"size"          => 10,
                                  
"maxfilesize"    => 100,
                                  
                                  
"accept"        => "text/html",
                                  
                                  
"minlength"      => 1,
                                  
"length_e"      => "You must provide a file.",
                                  
                                  
"valid_regex"    => "[html|htm]$",
                                  
"valid_icase"    => false,
                                  
"valid_e"        => "I'm afraid the filetype is incorrect. It's not a HTML File, is it?"
                                  
                              
)
                      );

    
$this->addElement(
                        array  (
                                  
"name"          => "combo",
                                  
"type"          => "combo",
                                  
"options"        => array ( 
                                                              
"0"  => "Tourist Information Kiel",
                                                              
"1" => "Wirtschaftsakademie SH",
                                                              
"2"  => "Leab Dynawatt"
                                                           
),
                                  
"value"          => "-1",
                                  
"size"          => 1,
                                  
                                  
"inputsize"      => 20,
                                  
                                  
"sort"          => "up",
                                  
                                  
"intro"          => array ( "-1" => "Choose a project..." ),
                                  
"intro_e"        => "It's invalid to choose the intro message...",
                                  
                                  
"minlength"      => 3,
                                  
"maxlength"      => 40,
                                  
"length_e"      => "The new entry gets refused. It must be 3 to 40 characters long.",
                                  
                                  
"frozen"        => false,
                                  
                                  
"add"            => "add entry"
                                  
                              
)
                      );    
/*
    $this->addElement(
                        array (
                                  "name"          => "treeview",
                                  "type"          => "tree",  
                                  "value"          => "",
                                  #"openall"        => true,
                                  
                                  "size"          => 1,
                                  "accesskey"      => "accesskey",
                                  "tabindex"      => 3,
                                  
                                  "intro"          =>  array( "-1" => "Please choose..."),
                                  "intro_e"        =>  "Please choose an option!",
                                  
                                  "step"          => "&nbsp;&nbsp;&nbsp;",
                                  "open"          => "[+]",
                                  "close"          => "[-]",
                                  
                                  "delimiter"      => "/",
                                  "tree"          => array  (
                                                                "1"    => array(  
                                                                                "label"  => "Menu 1",
                                                                                "value"  => "artgr1"
                                                                              ),
                                                                              
                                                                "2"    =>  array(
                                                                                "label"  => "Menu 2",
                                                                                "value"  => "artgr7"
                                                                              ),
                                                                              
                                                                "1/2/1"  => array(
                                                                                "label"  => "Menu 1.2.1",
                                                                                "value"  => "artgr4"
                                                                              ),            
                                                                "1/2/2"  => array(
                                                                                "label"  => "Menu 1.2.2",
                                                                                "value"  => "artgr22"
                                                                              ),
                                                                "1/2/3"  => array(
                                                                                "label"  => "Menu 1.2.3",
                                                                                "value"  => "artgr52"
                                                                              ),              
                                                                "1/2/2/1"  => array(
                                                                                "label"  => "Menu 1.2.2.1",
                                                                                "value"  => "artgr5"
                                                                              ),                                                                                          
                                                                
                                                                "1/2/2/2"  => array(
                                                                                "label"  => "Menu 1.2.2.2",
                                                                                "value"  => "artgr58"
                                                                              ),    
                                                                                                        
                                                                "1/1"  => array(
                                                                                "label"  => "Menu 1.1",
                                                                                "value"  => "artgr2"        
                                                                              ),
                                                                    
                                                                "1/2"  => array(
                                                                                "label"  => "Menu 1.2",
                                                                                "value"  => "artgr3"        
                                                                              ),          
                                                                
                                                                "1/3"  => array(
                                                                                "label"  => "Menu 1.3",
                                                                                "value"  => "artgr33"        
                                                                              ),  
                                                                "1/4"  => array(
                                                                                "label"  => "Menu 1.4",
                                                                                "value"  => "artgr34"        
                                                                              ),                                                                                                        
                                                                              
                                                                "2/2"  => array(
                                                                                "label"  => "Menu 2.2",
                                                                                "value"  => "artgr8"        
                                                                              )                  
                                                                                                                                          
                                                            )
                              )
                      );                              
  */                        
    
$this->addElement(
                        array  (
                                  
"name"          => "check",
                                  
"type"          => "checkbox",
                                  
"value"          => 7,
                                  
                                  
"accesskey"      => "k",
                                  
"tabindex"      => 12,
                                  
                                  
"checked"        => false,
                                  
"frozen"        => false
                              
)
                      );            

    
$this->addElement(
                        array  (
                                  
"name"          => "plainsubmit",
                                  
"type"          => "submit",
                                  
"value"          => "test it!",
                                  
                                  
"width"          => 10,
                                  
"height"        => 20,
                                  
                                  
"accesskey"      => "k",
                                  
"tabindex"      => 12,
                                  
                                  
"frozen"        => false
                              
)
                      );    
                      
  
$this->addElement(
                        array  (
                                  
"name"          => "imagesubmit",
                                  
"type"          => "image",
                                  
"value"          => "senden",
                                  
                                  
"src"            => "../images/form_info.gif",
                                  
                                  
"width"          => 10,
                                  
"height"        => 20,
                                  
                                  
"align"          => "left",
                                  
"alt"            => "alt",
                                  
"hspace"        => 0,
                                  
"vspace"        => 0,
                                  
"border"        => 0,
                                  
                                  
"accesskey"      => "k",
                                  
"tabindex"      => 12,
                                  
                                  
"frozen"        => false
                              
)
                      );  
                      
    
$this->addElement(
                        array  (
                                  
"name"           => "radio",
                                  
"elname"        => "radio[0]",
                                  
                                  
"type"          => "radio",
                                  
"value"          => 1,
                                  
                                  
"accesskey"      => "k",
                                  
"tabindex"      => 13,
                                  
                                  
"frozen"        => false
                              
)
                      );  
                      
    
$this->addElement(
                        array  (
                                  
"name"           => "radio",
                                  
"elname"        => "radio[1]",
                                  
                                  
"type"          => "radio",
                                  
"value"          => 2,
                                  
"checked"        => true,
                                  
                                  
"accesskey"      => "k",
                                  
"tabindex"      => 13,
                                  
                                  
"frozen"        => false
                              
)
                      );  
                      
    
$this->addElement(
                        array  (
                                  
"name"           => "radio2",
                                  
"elname"        => "radio2[0]",
                                  
                                  
"type"          => "radio",
                                  
"value"          => 7,
                                  
                                  
"accesskey"      => "k",
                                  
"tabindex"      => 13,
                                  
                                  
"frozen"        => false
                              
)
                      );  
                      
    
$this->addElement(
                        array  (
                                  
"name"           => "radio2",
                                  
"elname"        => "radio2[1]",
                                  
                                  
"type"          => "radio",
                                  
"value"          => 12,
                                  
"checked"        => true,
                                  
                                  
"accesskey"      => "k",
                                  
"tabindex"      => 13,
                                  
                                  
"frozen"        => false
                              
)
                      );          

    
$this->addElement(
                        array (
                                  
"name"          => "date_en2",
                                  
"type"          => "date",
                                  
"format"        => "Ymd",
                                  
"language"      => "en",
                                  
"now"            => "now",
                                  
"intro"          => "-%-",
                                  
"intro_e"        => "Please select an option."
                              
)
                      );                      
                      
    
$this->addElement(
                        array (
                                  
"name"          => "date_en",
                                  
"type"          => "date",
                                  
"format"        => "g Y-m-d D/F/l/A/M",
                                  
"language"      => "en",
                                  
"now"            => "now",
                                  
"intro"          => "-%-",
                                  
"intro_e"        => "Please select an option."
                                  
                              
)
                      );                      
                      
    
$this->addElement(
                        array (
                                  
"name"          => "date_de",
                                  
"type"          => "date",
                                  
"format"        => "aAdDFhHgGijlmnMswYyz",
                                  
"language"      => "de",
                                  
"now"            => "jetzt",
                                  
"preload"        => true,
                                  
"intro"          => "-%-",
                                  
"intro_e"        => "Please select an option."
                              
)
                      );                      

    
// autoload the form with HTTP_[POST|GET]_VARS
    
$this->autoloadValues();      

    
// All the new form classes have a method that dumps datastructures 
    // of objects and arrays. Use this function  while debugging to get 
    // an idea of the internal datastructes                                                                                                                      
    // $this->introspection("FORMS");
    
  
// end func Init
  
  // Custom Validator
  // The custom validator gets called before the default validators start
  // working. The custom validator has access to the values of all form
  // elements, sets errors and or turns the default validation of elements on/off
  
function DependencieValidator() {
  
    
// get the value of the element dependencits
    
$value $this->getValue("dependencies");
    
    switch (
$value) {
      case 
1:
        
// don't validate the element pass
        
$this->ValidationOff"pass" );
        break;
        
      case 
5:
        
// don't validate (all events of) pass, numbers, secret_numbers
        
$ellist = array(  "pass"            => "all",
                          
"numbers"          => "all",
                          
"secret_numbers"  => "all"
                        
);
        
$this->ValidationOff($ellist);
        break;  
                                      
      case 
7:
        
// don't care on:
        // - valid_e/valid_regexp of the element textarea
        // - length_e/minlength/maxlength of the element pass
        
$ellist = array(
                          
"textarea"  => "valid",
                          
"pass"      => "length"
                      
);                                            
        
$this->ValidationOff($ellist);                      
        break;
    }
    
  } 
// end func dependenciesdependencies
  
// end class example_form
?>

<  ^  >

 Neues

 XML/XSLT Menu
 OOH-Form Rewrite

 PEAR Cache:
  SHM Container

 Suchstring Parser
 Buchrezensionen
 PEAR Cache:
  OutputCompression

 PEAR Menu Browser
 PEAR Menu Tutorial 
 PEAR Cache


 Tipp

Download Version:
oben rechts,
Download *.tar.gz
|
| --- |
|
  Top   |   <  ^  >   |   phpOpenTracker Statistik   |   URL: http://www.ulf-wendel.de/projekte/form/form.php   |   Stand: 03.03.2001   |   © Ulf Wendel   
|
| --- |

0.036 s Bearbeitungszeit, 0.008 s IT[X], 0.002 s Menu 3