<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Testing Seth's Form</title> </head> <body> <?php
/** * Require SForm */ require_once 'SForm.php';
//Create a new form $form = new SForm('subNew');
/* * Add the data type selection */ //Create a new element directly $dataTypeElm = new SForm_Elm_Select('dataType', 'Data Type');
//Add an option and mark it as invalid, but selected by default $dataTypeElm->addOption('Select a Data Type', -1, array('selected'=>'selected')); $dataTypeElm->invalidOption(-1);
//Add regular options $dataTypeElm->addOption('Map', 1); $dataTypeElm->addOption('Observation', 2);
//Add a disabled option $dataTypeElm->addOption('Study', 3, array('disabled'=>'disabled'));
//Add the element to the data set in a fieldset $form->addElement($dataTypeElm);
/* * Location selection */ //Create a new element via a factory method $areaElm = $form->addElement('select', 'area', 'Area');
//Add an option and mark it as invalid $areaElm->addOption('Select an Area', -1, array('selected'=>'selected')); $areaElm->invalidOption(-1);
//Create options and group them $areaElm->addOption('Canada', 1); $areaElm->addOption('United States', 2); $areaElm->addOption('Mexico', 3);
$areaElm->addOptGroup('North America', array(1,2,3));
$areaElm->addOption('Brazil', 4); $areaElm->addOption('Colombia', 5); $areaElm->addOption('Peru', 6); $areaElm->addOption('Argentina', 7);
$areaElm->addOptGroup('South America', array(4,5,6,7));
//These aren't in a group $areaElm->addOption('Germany', 8);
$areaElm->addOption('New Area (see below)', -2);
/* * Category selection */ //Create a fieldset for the checkboxes $fs = $form->addElement('fieldset', null, 'Category');
//Add the checkboxes to the fieldset $fs->addElement('checkbox', 'forest', 'Forests'); $fs->addElement('checkbox', 'ag', 'Agriculture'); $fs->addElement('checkbox', 'water', 'Water');
//Set these to checked by default $fs->addElement('checkbox', 'climate', 'Climate')->setDefault(true); $fs->addElement('checkbox', 'health', 'Health', array('checked'=>'checked'));
/* * Language selection */ $langElm = new SForm_Elm_Select('lang', 'Language');
$langElm->addOption('English', 'en'); $langElm->addOption('Spanish', 'sp'); $langElm->addOption('Portuguese', 'pr'); $langElm->addOption('German', 'gr');
$form->addElement($langElm);
/* * New location creation fieldset */ //Create a fieldset $fs = new SForm_Fieldset(null, 'New Area');
//Add some various input boxes $fs->addElement($newNameElm = new SForm_Elm_Text('new_name', 'Name')); $fs->addElement(new SForm_Elm_Text('new_top', 'Top')); $fs->addElement(new SForm_Elm_Text('new_right', 'Right')); $fs->addElement(new SForm_Elm_Text('new_bottom', 'Bottom')); $fs->addElement(new SForm_Elm_Text('new_left', 'Left'));
//Create a custom boolean rule require_once 'SForm/Rule/Boolean.php'; $newNameElm->addRule(new SForm_Rule_Boolean( 'If you are creating a new area, you must fill in its name.', array($newNameElm, $areaElm), '%s == "" && %s == -2'));
$form->addElement($fs);
/* * Submission button */ $form->addElement('submit', 'sub_new', 'Begin Submission');
if($form->validate()){ $form->freeze(); }
$form->display(); ?> </body> </html>
|