Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Form Questions

Form doesn't run desired action


Reply

382 Views

Avatar
Elzabar

24 September 2012 at 2:04pm (Last edited: 24 September 2012 2:36pm), Community Member, 2 Posts

I currently have a form which is supposed to edit an existing member when it is run. However when I press submit, rather than running the function, it runs the default action defined in the form which is a non-existant page (www.urlbase.com/profile/ProfileForm). The code is here:

<?php

class ProfilePage extends Page {
   
}

class ProfilePage_Controller extends Page_Controller {
   
   
   static $allowed_actions = array(
      //'SubmitProfile',
      'ProfileForm'
   );
   
   public function ProfileForm() {
      
      $fields = new FieldList(
         new TextField('FirstName', 'First Name'),
         new EmailField('Email', 'E-mail'),
         new CountryDropdownField('Country', 'Location', null, 'NZ')
      );
      
      $actions = new FieldList(
         new FormAction('SubmitProfile', 'Submit')
      );
      
      //$validator = new RequiredFields('Name');
      
      return new Form($this, 'ProfileForm', $fields, $actions);
   }
   
   public function SubmitProfile($data, $form) {
      
      $member = currentUser();
      $form->saveInto($member);
      $member->write();
      
      Controller::redirect('profile');
   }
}

?>

It doesn't seem to recognise the SubmitProfile function... Can anyone tell me what I'm doing wrong here? Thanks in advance :)

Edit: *facepalm* Solved it. Was trying to use the currentUser function by itself, had to access the Member class first.