Easily preserve and clear user entered form data contents via session in the event of errors
Easily preserve and clear user entered form data contents via session in the event of errors
class YourForm extends Form
{
private static $extensions = [
FormPreserveExtension::class
];
public function __construct(RequestHandler $controller = null, $name = self::DEFAULT_NAME, FieldList $fields = null, FieldList $actions = null, $validator = null)
{
/** @var ArrayData $preserved */
$preserved = $this->retrievePreserved();
$fields = FieldList::create([
TextField::create('FirstName', 'First name:', $preserved->FirstName)->setAttribute('required', true),
EmailField::create('Email', 'Your email:', $preserved->Email)->setAttribute('placeholder', 'Where do we send our response?')->setAttribute('required', true),
]);
$actions = FieldList::create([
FormAction::create('doSubmit', 'Send')->setUseButtonTag(true)->setButtonContent('<i class="fal fa-paper-plane"></i> Send')->addExtraClass('btn btn-primary')
]);
parent::__construct($controller, $name, $fields, $actions, $validator);
}
}
Your form submit action:
class ContactPageController extends \PageController
{
public function doSubmit($data, Form $form)
{
FormPreserve::preserve($form, $data);
if (!isset($data['Email']) || !filter_var($data['Email'], FILTER_VALIDATE_EMAIL)) {
return $this->redirectBack();
}
FormPreserve::clear($form);
return $this->redirectBack();
}
}
Module rating system helping users find modules that are well supported. For more on how the rating system works visit Module standards
Score not correct? Let us know there is a problem