Elements
In This Article
Select
Zend\Form\Element\Select
is meant to be paired with
FormSelect for HTML inputs with type "select". This
element adds an InArray
validator to its input filter specification in order
to validate on the server if the selected value belongs to the values. This
element can be used as a multi-select element by adding the multiple
HTML
attribute to the element.
Basic Usage
This element automatically adds a type
attribute of value select
.
use Zend\Form\Element;
use Zend\Form\Form;
$select = new Element\Select('language');
$select->setLabel('Which is your mother tongue?');
$select->setValueOptions([
'0' => 'French',
'1' => 'English',
'2' => 'Japanese',
'3' => 'Chinese',
]);
$form = new Form('language');
$form->add($select);
Using array notation:
use Zend\Form\Element;
use Zend\Form\Form;
$form = new Form('my-form');
$form->add([
'type' => Element\Select::class,
'name' => 'language',
'options' => [
'label' => 'Which is your mother tongue?',
'value_options' => [
'0' => 'French',
'1' => 'English',
'2' => 'Japanese',
'3' => 'Chinese',
],
],
]);
You can add an empty option (option with no value) using the empty_option
option:
use Zend\Form\Element;
use Zend\Form\Form;
$form = new Form('my-form');
$form->add([
'type' => Element\Select::class,
'name' => 'language',
'options' => [
'label' => 'Which is your mother tongue?',
'empty_option' => 'Please choose your language',
'value_options' => [
'0' => 'French',
'1' => 'English',
'2' => 'Japanese',
'3' => 'Chinese',
],
],
]);
Option groups are also supported by adding an options
key to the value options:
use Zend\Form\Element;
use Zend\Form\Form;
$select = new Element\Select('language');
$select->setLabel('Which is your mother tongue?');
$select->setValueOptions([
'european' => [
'label' => 'European languages',
'options' => [
'0' => 'French',
'1' => 'Italian',
],
],
'asian' => [
'label' => 'Asian languages',
'options' => [
'2' => 'Japanese',
'3' => 'Chinese',
],
],
]);
$form = new Form('language');
$form->add($select);
Attributes on the options are supported by providing the options as a specification array instead of key-value pairs:
$select->setValueOptions([
[
'value' => '0',
'label' => 'French',
'attributes' => [
'data-locale' = 'fr'
],
],
[
'value' => '1',
'label' => 'Italian',
'disabled' => true,
],
]);
Public Methods
The following methods are specific to the Select
element; all other methods
defined by the parent Element
class are also
available.
Method signature | Description |
---|---|
setOptions(array $options) : void |
Set options for an element. Accepted options, in addition to the inherited options, include value_options , empty_option , and disable_inarray_validator , which call setValueOptions() , setEmptyOption() and setDisableInArrayValidator() , respectively. |
setValueOptions(array $options) : void |
Set the value options for the select element. The array must contain key/value pairs. |
getValueOptions() : array |
Return the value options. |
unsetValueOption($key) : void |
Unset the value option from the select element. |
setEmptyOption($emptyOption) : void |
Optionally set a label for an empty option (option with no value). It is set to null by default, which means that no empty option will be rendered. |
getEmptyOption() : string|null |
Get the label for the empty option (null if none). |
Found a mistake or want to contribute to the documentation? Edit this page on GitHub!