I have not been able to figure out how to get a form to submit using Ajax. There is mention of using a FormResponse object here. But then there is no documentation for it.
I have this in my Page_Controller class (NB: Haven't even started on DataObject stuff yet - just want to see this submitting via ajax):
function ContactUsForm() {
// Create fields
$fields = new FieldSet(
new TextField('FirstName', 'Name', 'Name'),
new EmailField('Email', 'Email', 'Email'),
new TextField('Phone', 'Phone No.', 'Phone No.'),
new CheckboxField('Brochure', 'Email me a brochure'),
new CheckboxField('Call', 'Please call me'),
new CheckboxField('Newsletter', 'Sign me up for e-newsletter')
);
// Create actions
$actions = new FieldSet(
new AjaxFormAction('doContactUsForm', 'Submit'),
new ResetFormAction('doCloseContactUsForm', 'Close')
);
$reqdFields = new RequiredFields("Email", "FirstName");
return new Form($this, 'ContactUsForm', $fields, $actions);//, $reqdFields);
}
function doContactUsForm($data, $form) {
// your form actions
FormResponse::update_dom_id('ContactFormLiner', '<p>DONE</p>');
FormResponse::status_message('Done', 'good');
// will automatically show the status-message if called by ajax, or redirect on a normal HTTP-request
return FormResponse::respond();
}