-
Notifications
You must be signed in to change notification settings - Fork 0
select
Syone edited this page Aug 6, 2023
·
1 revision
The select list in a form is an OptionContainer.
- OptionContainer FieldContainer::addSelect([array $attributes = array() [, array $options = array()]])
Parameter | Description |
---|---|
attributes | An array of key/value pairs representing all HTML <select> Tag attributes. |
options | An array of key/value pairs representing element settings. |
Key | Value type | Value description |
---|---|---|
'label' | string | Input label |
'error' | string | Error message |
'required' | boolean | Set if input is required or not |
'validator' | array | Array of callback functions |
'label-class' | string | Label class name |
'label-position' | string | 'before' or 'after'(default) or 'wrap-before' or 'wrap-after' |
'error-position' | string | 'before' or 'after'(default) |
'selected' | string or array | Selected element value(s) |
'options' | array | Array of key/value pairs representing <option> tag value => label or a list of option label |
- OptionContainer OptionContainer::addOptGroup(string $label)
Parameter | Description |
---|---|
label | Label of <optgroup> Tag. |
- Option OptionContainer::addOption(string $label [, string $value])
Parameter | Description |
---|---|
label | <option> Tag label. |
value | <option> Tag value. |
- Option OptionContainer::addOptions(mixed $options)
Parameter | Description |
---|---|
options | Array of key/value pairs representing <option> tag value => label or a list of option label |
<?php
require '/path/to/your/syframework/directory/sy.inc.php';
use Sy\Component\Html\Form;
$form = new Form();
$select = $form->addSelect(
array('name' => 'day', 'id' => 'my_day'),
array('label' => 'Day')
);
// add options in the select
$select->addOption('');
$select->addOption('Monday');
$select->addOption('Tuesday');
$select->addOption('Wednesday');
$select->addOption('Thursday');
$select->addOption('Friday');
$select->addOption('Saturday');
$select->addOption('Sunday');
// or with addOptions method
$select->addOptions('', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');
echo $select;
Output result:
<label for="my_day">Day</label>
<select name="day" id="my_day">
<option></option>
<option>Monday</option>
<option>Tuesday</option>
<option>Wednesday</option>
<option>Thursday</option>
<option>Friday</option>
<option>Saturday</option>
<option>Sunday</option>
</select>
You can also use the "options" option but the ouput will be a little different:
<?php
require '/path/to/your/syframework/directory/sy.inc.php';
use Sy\Component\Html\Form;
$form = new Form();
$select = $form->addSelect(
array('name' => 'day', 'id' => 'my_day'),
array(
'label' => 'Day',
'options' => array('', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday')
)
);
echo $select;
Output result:
<label for="my_day">Day</label>
<select name="day" id="my_day">
<option value="0"></option>
<option value="1">Monday</option>
<option value="2">Tuesday</option>
<option value="3">Wednesday</option>
<option value="4">Thursday</option>
<option value="5">Friday</option>
<option value="6">Saturday</option>
<option value="7">Sunday</option>
</select>
<?php
require '/path/to/your/syframework/directory/sy.inc.php';
use Sy\Component\Html\Form;
$form = new Form();
$select = $form->addSelect(
array('name' => 'day', 'id' => 'my_day'),
array('label' => 'Day')
);
// add options with a value attribute in the select
$select->addOption('' , 0);
$select->addOption('Monday' , 1);
$select->addOption('Tuesday' , 2);
$select->addOption('Wednesday', 3);
$select->addOption('Thursday' , 4);
$select->addOption('Friday' , 5);
$select->addOption('Saturday' , 6);
$select->addOption('Sunday' , 7);
// or with addOptions method
$select->addOptions(array(
'0' => '',
'1' => 'Monday',
'2' => 'Tuesday',
'3' => 'Wednesday',
'4' => 'Thursday',
'5' => 'Friday',
'6' => 'Saturday',
'7' => 'Sunday',
));
// in this case, you can do that
$select->addOptions(array('', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'));
echo $select;
Output result:
<label for="my_day">Day</label>
<select name="day" id="my_day">
<option value="0"></option>
<option value="1">Monday</option>
<option value="2">Tuesday</option>
<option value="3">Wednesday</option>
<option value="4">Thursday</option>
<option value="5">Friday</option>
<option value="6">Saturday</option>
<option value="7">Sunday</option>
</select>
<?php
require '/path/to/your/syframework/directory/sy.inc.php';
use Sy\Component\Html\Form;
$form = new Form();
$select = $form->addSelect(
array('name' => 'day', 'id' => 'my_day'),
array('label' => 'Day')
);
// add options in the select
$select->addOption('');
$group1 = $select->addOptGroup('Workdays');
$group1->addOption('Monday');
$group1->addOption('Tuesday');
$group1->addOption('Wednesday');
$group1->addOption('Thursday');
$group1->addOption('Friday');
$group2 = $select->addOptGroup('Weekend');
$group2->addOption('Saturday');
$group2->addOption('Sunday');
// or simply
$select->addOption('');
$select->addOptGroup('Workdays')->addOptions('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday');
$select->addOptGroup('Weekend')->addOptions('Saturday', 'Sunday');
echo $select;
Output result:
<label for="my_day">Day</label>
<select name="day" id="my_day">
<option></option>
<optgroup label="Workdays">
<option>Monday</option>
<option>Tuesday</option>
<option>Wednesday</option>
<option>Thursday</option>
<option>Friday</option>
</optgroup>
<optgroup label="Weekend">
<option>Saturday</option>
<option>Sunday</option>
</optgroup>
</select>
<?php
require '/path/to/your/syframework/directory/sy.inc.php';
use Sy\Component\Html\Form;
$form = new Form();
$multiSelect = $form->addSelect(
array('name' => 'color[]', 'multiple' => 'multiple'),
array('label' => 'Color')
);
$multiSelect->addOptions('Red', 'Green', 'Blue', 'Yellow', 'Purple', 'Black', 'White');
echo $multiSelect;
Output result:
<label>Color</label>
<select name="color[]" multiple="multiple">
<option>Red</option>
<option>Blue</option>
<option>Green</option>
<option>Yellow</option>
<option>Purple</option>
<option>Black</option>
<option>White</option>
</select>