1265 Posts in 351 Topics by 486 members
|
Page:
1
|
Go to End | |
| Author | Topic: | 1068 Views |
-
Losing connection to controller with renderWith()

28 June 2010 at 7:59am Last edited: 28 June 2010 8:32am
I want to add simple, custom control (newsletter signup form, which is being rendered with a custom form template). In code below, when returning $formSignup only, everything works fine. When using the renderWith() method the proper action (/home/SignupForm in URL) is being called, but somehow the connection to the page controller is lost. I am not sure what I am doing wrong. The custom form is being send to the browser only completely detached.
/**
* This function puts a form on your page, using $Form.
*/
public function SignupForm() {
$formSignup = new Form($this, "SignupForm", new FieldSet(
new EmailField("Email", "","E-Mail Address")),
new FieldSet(new FormAction("SignupAction", "Sign up"))//,
//new RequiredFields("Email")
);
//return $formSignup;
return $this->customise($formSignup)->renderWith(array('FormSignup'));
}/**
* This function is called when the user submits the form.
*/
public function SignupAction($data, $form) {// Create a new Member object and load the form data into it
$member = new Member();
$form->saveInto($member);// Write it to the database. This needs to happen before we add it to a group
$member->write();// Add the member to group. (Check if it exists first)
if($group = DataObject::get_one('Group', "ID = $this->defaultGroupID")) {$member->Groups()->add($group);
// Redirect to a page thanking people for registering
Director::redirect('signup-thank-you/');
} else {
// Redirect to a failure page
Director::redirect('signup-failure/');
}
}I appreciate any help.
-
Re: Losing connection to controller with renderWith()

1 July 2010 at 4:21am
This helps: ... http://doc.silverstripe.org/form
-
Re: Losing connection to controller with renderWith()

11 June 2011 at 4:08am
this may come in handy for anybody who wants to easily include forms in a sidebar or any other area of the site, without controlling a hidden page:
http://www.clickheredigital.co.uk/blog/how-to-include-a-silverstripe-form-on-any-every-page/
it also has an easy "query database for existing member" function that isn't covered in the form tutorials...
| 1068 Views | ||
|
Page:
1
|
Go to Top |


