<!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>
|