我试图在我的parent1(optgroup)前面放置一个复选框,并且如果我检查父optgroup的话,我需要将所有子选项都设置为选中状态,同时我还将在下面附加我的代码。因此如何插入复选框位于optgroup的前面。
<select id="offc" name="offc[]" multiple>
<option value="">Select Office</option>
<?php
$country = array();
foreach($office as $values)
{
if(!in_array($values['cntry_id'],$country))
{
?>
<optgroup label="<?php echo $values['country']?>">
<?php
}
?>
<option value="<?php echo $values['office_id']; ?>"><?php echo $values['listing_name']; ?></option>
<?php
array_push($country,$values['cntry_id']);
} ?>
</select>
答案 0 :(得分:0)
<option>
元素不能包含HTML,因此使用此方法将无法实现所需的功能。通过使用Bootstrap dropdown或类似方法,您可以获得类似的结果(这只是一个示例,除了Bootstrap以外,还有很多其他选项)。
答案 1 :(得分:0)
当我在 google 上搜索“dosamigos\multiselect optgroup”时,我被引导到这里,所以我将回答那些也最终在 Yii2 Multiselect 的这个线程上的人。
其实很简单。采用数组的数据属性也可以采用多维数组,其中键是 optgroup 的标题。请参阅以下示例,我将其保留在我倾向于应用的其他一些配置中。
代替:
$arrayOfOptions = [
'1' => "Option 1",
'2' => "Option 2",
'n/a' => 'Not applicable'
];
您可以使用:
$arrayOfOptions = [
'Optgroup 1' => [
'1' => "Option 1",
'2' => "Option 2",
],
'Optgroup 2' => [
'n/a' => 'Not applicable',
],
];
有关小部件的完整应用,请参阅以下内容。
$arrayOfOptions = ['1' => "Option 1", '2' => "Option 2", 'n/a' => 'Not applicable'];
MultiSelect::classname(),[
"options" => ['multiple'=>"multiple", 'id' => 'id-attribute', 'value' => array_values($arrayOfAllOptions),'class' => 'scrollable', ],
'data' => ['Otp-Group-Name-1' => $arrayOfOptions, 'Otp-Group-Name-2' => ['value' => 'Text of Option']], // data as array
'name' => 'model_attribute', // name for the form
"clientOptions" => [
"includeSelectAllOption" => true,
"selectedClass" => 'multiselect-color',
'numberDisplayed' => 1,
"buttonWidth" => "100%",
"buttonClass" => "btn-multiselect-custom",
"enableCaseInsensitiveFiltering" => true,
"maxWidth" => "100%",
"maxHeight" => '500',
"selectAllText" => Yii::t('app', 'Select all'),
"nonSelectedText" => Yii::t('app', 'Select option'),
"filterPlaceholder" => Yii::t('app', 'Search'),
"nSelectedText" => Yii::t('app', 'selected'),
"allSelectedText" => Yii::t('app', 'All Selected'),
],
];