1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?php
//MyForm Sub Class, file name: MyForm.php
class MyForm extends Form {

   function __construct($controller, $name) {
      $fields = new FieldSet(
         new TextField('FirstName', 'First name'),
         new EmailField('Email', 'Email address')
      );

      $actions = new FieldSet(
         new FormAction('submit', 'Submit')
      );
     $validator = new RequiredFields('FirstName', 'Email');


      parent::__construct($controller, $name, $fields, $actions, $validator);
   }

   function forTemplate() {
      return $this->renderWith(array(
         $this->class,
         'Form'
      ));
   }

   function submit($data, $form) {
      // do stuff here
    $submission = new MyFormSubmission();
    $form->saveInto($submission);
    $submission->write();

    Director::redirect('/home/');
   }

}

?>


//MyForm.ss
<form $FormAttributes>
   <% if Message %>
      <p id="{$FormName}_error" class="message $MessageType">$Message</p>
   <% else %>
      <p id="{$FormName}_error" class="message $MessageType" style="display: none"></p>
   <% end_if %>
   
   <fieldset>
      <div id="FirstName" class="field text">
         <label class="left" for="{$FormName}_FirstName">First name</label><br>
         $dataFieldByName(FirstName)
      </div>

      <div id="Email" class="field email">
         <label class="left" for="{$FormName}_Email">Email :</label><br>
         $dataFieldByName(Email)
      </div>

      $dataFieldByName(SecurityID)
   </fieldset>

   <% if Actions %>
      <div class="Actions">
         <% control Actions %>$Field<% end_control %>
      </div>
   <% end_if %>
</form>

//cotroller insider HomePage.php
class HomePage_Controller extends Page_Controller {

  function MyFirstForm(){
    return new MyForm($this, 'MyFirstForm');
  }

} 


<?php

class MyFormSubmission extends DataObject {
  static $db = array(
    'FirstName' => 'Varchar(255)',
    'Email' => 'Text'
  );  
}


?>