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