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

Populating a form's CheckboxSetField


Reply

4 Posts   1472 Views

Avatar
rob.s

2 September 2010 at 1:51am (Last edited: 2 September 2010 1:54am), Community Member, 78 Posts

Hi,

i have trouble generating a form that should pe prefilled with data.
All fields are fine but the CheckboxSetField.

I have a class "Request" (extended from DataObject ) that has a many_many relation to the class "Artistcategory"

Now i want to show my "RequestForm" and populate the Data coming from a DataObject.

public function RequestForm()
{
Validator::set_javascript_validation_handler('none');
$form = new RequestForm($this, 'RequestForm');
if( $this->_Request instanceof Request ) {
$form->loadDataFrom ( $this->_Request);
}
return $form;
}

All fields are populated with the correct data of the dataobject.
But not the CheckboxSetField. It's always empty (no Checkbox is ticked).

Any ideas ?

Class Request:

class Request extends DataObject {
public static $db = array(
..........
);

public static $many_many = array(
'Artistcategories' => 'Artistcategory'
);

Class Artistcategory:

class Artistcategory extends DataObject {
public static $db = array(
......
);

public static $many_many = array(
.......
);

public static $belongs_many_many = array(
'Requests' => 'Request',
);

]

Avatar
cumquat

22 March 2011 at 10:46pm Community Member, 198 Posts

Hi ya,

Did you get any luck with this as I'm stuck here too?

Regards

Mick

Avatar
swaiba

24 March 2011 at 5:11am Forum Moderator, 1796 Posts

if it helps this is how I create a CheckboxSetField with values and specify the ones currently selected...

$dos = DataObject::get(<DataObjectName>);
$map = $dos ? $map = $dos->toDropdownMap('ID','Name') : array();

$selectedarr = array();
$selectedarr[<ID>] = <ID>; //you would get this list from the relationship componentset with ->getIdList()

$cbf = new CheckboxSetField(<FieldName>,<TabName>, $map,$selectedarr);

Avatar
cumquat

24 March 2011 at 8:54am Community Member, 198 Posts

Thanks for the help swaiba, i'm moving further on but am now stuck on how to save all the data including the checkbox data, i can get the standard data to save but not the many_many data. I had started another post here [url]http://silverstripe.org/form-questions/show/16256[/url] if you could help?

Mick