dev-master
9999999-dev http://silverstripe.orgSilverStripe FormField for adding dynamic data to forms.
BSD-3-Clause
The Requires
The Development Requires
silverstripe versioned
Wallogit.com
2017 © Pedro Peláez
SilverStripe FormField for adding dynamic data to forms.
A reusable approach to a form field which allows you to create and delete rows in either custom built forms or in Userforms., (*2)
This is designed to work on the front-end with limited javascript (i.e it does
not require GridField or entwine)., (*3)
Each row can relate to a DataObject subclass or simply to be used to capture the data as an array., (*4)
composer require fullscreeninteractive/silverstripe-manyfield
, (*5)
use FullscreenInteractive\ManyField\ManyField;
$fields = new FieldList(
$many = ManyField::create('SwabList', [
TextField::create('Swab'),
TextField::create('TestSite'),
TextField::create('Description'),
TextField::create('Material')
])
);
Data will either be saved as setSwabList($data), SwabList database field or
in the SwabList relation. If you are saving into a relation such as HasMany
or ManyMany list then make sure you include a hidden field in your field list., (*6)
$many = ManyField::create('SwabList', [
HiddenField::create('ID', ''),
TextField::create('Swab'),
TextField::create('TestSite'),
TextField::create('Description'),
TextField::create('Material')
]);
Include a Hidden field Sort and make sure sorting is enabled., (*7)
$many = ManyField::create('SwabList', [
HiddenField::create('ID', ''),
HiddenField::create('Sort', ''),
TextField::create('TestSite')
])->setCanSort(true);
$many = ManyField::create('SwabList', [
TextField::create('TestSite')->setRequired(true)
])->setCanSort(true);
If you have UI handlers that need to run when fields are added or removed
(such as Date Pickers) create a handler on your <body> element and listen for
either:, (*8)
manyFieldAddedmanyFieldRemovedMake sure your form encoding is set to the correct MIME type., (*9)
$form->setEncType(Form::ENC_TYPE_MULTIPART);
BSD 3-Clause License, (*10)
SilverStripe FormField for adding dynamic data to forms.
BSD-3-Clause
silverstripe versioned