\ValidFormBuilderMultiField

Create a Multifield element

Multifield elements allow you to combine multiple fields horizontally with one label. For example, create a first name + last name field with label "Full name"

$objMulti = $objForm->addMultifield("Full name");
// Note: when using addField on a multifield, we don't set a label!
$objMulti->addField(
    "first-name",
    ValidForm::VFORM_STRING,
    array(),
    array(),
    // Keep it short, this is just a first name field
    array("style" => "width: 50px")
);
$objMulti->addField("last-name", ValidForm::VFORM_STRING);

You can also combine select elements to create a date picker:

$objMulti = $objForm->addMultiField("Birthdate");
$objMulti->addField(
    "year",
    ValidForm::VFORM_SELECT_LIST,
    array(),
    array(),
    array(
        "start" => 1920,
        "end" => 2014,
        // 'fieldstyle' gets applied on the <select>
        // regular 'style' applies on the wrapping <div>
        "fieldstyle" => "width: 75px"
    )
);
$objMulti->addField(
    "month",
    ValidForm::VFORM_SELECT_LIST,
    array(),
    array(),
    array(
        "start" => 01,
        "end" => 12,
        "fieldstyle" => "width: 75px"
    )
);
$objMulti->addField(
    "day",
    ValidForm::VFORM_SELECT_LIST,
    array(),
    array(),
    array(
        "start" => 1,
        "end" => 31,
        "fieldstyle" => "width: 75px"
    )
);

Summary

Methods
Properties
Constants
addCondition()
setMeta()
setFieldMeta()
getFieldMeta()
setLabelMeta()
setTipMeta()
getMeta()
getLabelMeta()
getName()
toJS()
setData()
getData()
addField()
addText()
No public properties found
No constants found
No protected methods found
No protected properties found
N/A
No private methods found
No private properties found
N/A

Methods

addCondition()

addCondition(string  $strType, boolean  $blnValue, array  $arrComparisons, integer  $intComparisonType = \ValidFormBuilder\ValidForm::VFORM_MATCH_ANY) 

Add a new condition to the current field

For examples, check \ValidFormBuilder\Condition

Parameters

string $strType

Define the condition type. This can be either required, visibile or enabled

boolean $blnValue

Define whether this condition activates if the comparison(s) are true or false.

array $arrComparisons

An array of Comparison objects

integer $intComparisonType

The comparison type. Either ValidForm::VFORM_MATCH_ANY or ValidForm::VFORM_MATCH_ALL. With VFORM_MATCH_ANY, as soon as one of the comparisons validates the condition, the condition is enforced. With ValidForm::VFORM_MATCH_ALL, all of the comparisons must validate before the condition will be enforced.

Throws

\Exception

if Condition could not be set

\InvalidArgumentException

If invalid arguments are supplied

setMeta()

setMeta(string  $property, mixed  $value, boolean  $blnOverwrite = false) 

Set meta property.

Parameters

string $property

Property name.

mixed $value

Property value.

boolean $blnOverwrite

Optionally use this boolean to force an overwrite of previous property value.

setFieldMeta()

setFieldMeta(string  $property, mixed  $value, boolean  $blnOverwrite = false) : mixed

Set field specific meta data

Parameters

string $property

Property name.

mixed $value

Property value.

boolean $blnOverwrite

Optionally use this boolean to force an overwrite of previous property value.

Returns

mixed —

The newly set value

getFieldMeta()

getFieldMeta(string  $property = null, string  $fallbackValue = "") : mixed

Get field meta property.

Parameters

string $property

Property to get from internal field meta array.

string $fallbackValue

Optional fallback value if no value is found for requested property

Returns

mixed

setLabelMeta()

setLabelMeta(string  $property, mixed  $value, boolean  $blnOverwrite = false) : mixed

Set label specific meta data

Parameters

string $property

Property name.

mixed $value

Property value.

boolean $blnOverwrite

Optionally use this boolean to force an overwrite of previous property value.

Returns

mixed —

The newly set value

setTipMeta()

setTipMeta(string  $property, mixed  $value, boolean  $blnOverwrite = false) : mixed

Set tip specific meta data

Parameters

string $property

Property name.

mixed $value

Property value.

boolean $blnOverwrite

Optionally use this boolean to force an overwrite of previous property value.

Returns

mixed —

The newly set value

getMeta()

getMeta(string  $property = null, string  $fallbackValue = "") : mixed

Get meta property.

Parameters

string $property

Property to get from internal meta array.

string $fallbackValue

Optional fallback value if requested property has no value

Returns

mixed

getLabelMeta()

getLabelMeta(string  $property = null, string  $fallbackValue = "") : string

Get label meta property.

Parameters

string $property

Property to get from internal label meta array.

string $fallbackValue

Optional fallback value if requested property has no value

Returns

string —

Property value or empty string of none is set.

getName()

getName() : string

Return the (original) name of the current field.

Use getDynamicName() to get the field name + dynamic count

Returns

string —

The original field name

toJS()

toJS(integer  $intDynamicPosition) : string

Generate corresponding javascript code for this element

Should be extended by child classes.

Parameters

integer $intDynamicPosition

Dynamic position

Returns

string

setData()

setData(string  $strKey = null, mixed  $varValue = null) : boolean

Store data in the current object.

See \ValidFormBuilder\Base::setData() for a full description

Parameters

string $strKey

The key for this storage

mixed $varValue

The value to store

Returns

boolean —

True if set successful, false if not.

getData()

getData(string  $key = null) : mixed

Get a value from the internal data array.

See \ValidFormBuilder\Base::getData() for a full description

Parameters

string $key

The key of the data attribute to return

Returns

mixed —

If a key is provided, return it's value. If no key provided, return the whole data array. If anything is not set or incorrect, return false.

addField()

addField(string  $name, integer  $type, array  $validationRules = array(), array  $errorHandlers = array(), array  $meta = array()) : \ValidFormBuilder\Element

Add a field to the MultiField collection.

Same as \ValidFormBuilder\ValidForm::addField() with the only difference that the MultiField::addField() does not take a field label since that's already set when initialising the MultiField.

Parameters

string $name

Field name

integer $type

Field type

array $validationRules

Validation rules array

array $errorHandlers

Error handling array

array $meta

The meta array

Returns

\ValidFormBuilder\Element

addText()

addText(string  $strText, array  $meta = array()) : \ValidFormBuilder\StaticText

Add text to the multifield.

Same as \ValidFormBuilder\ValidForm::addText()

Parameters

string $strText

The text to add (can be HTML as well)

array $meta

The meta array

Returns

\ValidFormBuilder\StaticText