Hello,
I have implemented a custom form with custom template. Everything works (email gets sent, data it stored in database).
But I can't figure out how to display the submitted data. How do I list or display the submitted data?
Please see below for my code:
RegisterPage.php
class RegisterPage extends Page {
static $db = array(
);
static $has_many = array(
"Submissions" => "RegisterInterestSubmission"
);
}
class RegisterPage_Controller extends Page_Controller {
function init() {
parent::init();
}
function RegisterInterestForm() {
return new RegisterForm($this, 'RegisterInterestForm');
}
}
RegisterForm.php - My Custom Form
class RegisterForm extends Form {
function __construct($controller, $name) {
// Create fields
$fields = new FieldSet(
new TextField('FirstName', 'First Name'),
new TextField('Surname', 'Surname'),
new TextField('Email', 'Email')
);
// Create actions
$actions = new FieldSet(
new FormAction('doSubmit', 'Submit')
);
//Validations
$validator = new RequiredFields('FirstName', 'Surname', 'Email');
//return new Form($this, $name, $fields, $actions, $validator);
parent::__construct($controller, $name, $fields, $actions, $validator);
}
function doSubmit($data, $form) {
$submission = new RegisterInterestSubmission();
$form->saveInto($submission);
$submission->write();
}
function forTemplate() {
return $this->renderWith(array(
$this->class,
'Form'
));
}
}
RegisterInterestSubmission.php - Data object to store submissions
class RegisterInterestSubmission extends DataObject {
static $db = array(
'FirstName' => 'Text',
'Surname' => 'Text',
'Email' => 'Text'
);
}