【问题标题】:how to set default selected for select 2 multiple choice如何为选择2多项选择设置默认选择
【发布时间】:2023-08-13 12:24:01
【问题描述】:
    echo $form->field($model, 'user_id[]', [
          ])->widget(Select2::classname(), [
          'data' => $user_data,
          'pluginOptions' => [
              'allowClear' => true,
              'placeholder' => 'Select user...',
              'multiple' => true,
          ],
      ])->dropDownList($user_data,     [
          'multiple'=>'multiple',
          'class'=>'chosen-select input-md required',
         ]    )->label(Yii::t('app','User').' : '); 

通过使用上面的代码,我能够从数据库加载数据并在用户列表中显示给用户,他们可以在其中键入和选择用户。假设我想设置 2 个默认选择值,例如 user_id = 1 和 2,我该如何在选择 2 中这样做?

【问题讨论】:

    标签: php yii2 jquery-select2 select2


    【解决方案1】:

    您需要将一组值传递给您的 select2 控件,然后刷新它。例如,要在页面加载时选择 user_id 1 和 2,您需要执行以下操作。

    var user_ids = [1,2];
    $('#YourSelect2Control').val(user_ids);
    $('#YourSelect2Control').select2();
    

    【讨论】:

      【解决方案2】:

      您可以通过设置widgets\Select2;Value 选项来做到这一点

         echo $form->field($model, 'user_id[]', [
                ])->widget(Select2::classname(), [
                'data' => $user_data,
                'value' => [1, 2],  // Initial values, can also check with these value as string["1","2"],
                 .
                 . 
      

      这里是文档Link

      希望这对你有用。

      【讨论】:

        【解决方案3】:

        根据http://demos.krajee.com/widget-details/select2 的文档:

        // Tagging support Multiple
        echo '<label class="control-label">Tag Multiple</label>';
        echo Select2::widget([
            'name' => 'color_1',
            'value' => ['red', 'green'], // initial value
            'data' => $data,
            'options' => ['placeholder' => 'Select a color ...', 'multiple' => true],
            'pluginOptions' => [
                'tags' => true,
                'maximumInputLength' => 10
            ],
        ]);
        

        请注意“value”键如何具有值数组。这将设置多个默认的“选定”选项。但是,如果不使用“标签”选项,文档不会显示此功能。

        【讨论】: