多选optgroup

时间:2018-06-26 12:02:47

标签: javascript php jquery

我试图在我的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>

enter image description here

2 个答案:

答案 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'),
    ],
];