php - 如何在 Yii2 应用程序的多选下拉列表中显示选定的值?

标签 php arrays yii2 yii2-advanced-app

我正在研究 Yii2。我正在使用这样的自定义数组创建多个选择下拉列表。

在 Controller 文件中:

$all_groups = Groups::find()->where(['=','group_created_by',$id])->orwhere(new Expression('FIND_IN_SET(:id_to_find, group_managers)'))->addParams([':id_to_find' => $id])->all(); // fetch all values

$selected_groups  = Groups::find()->where(['=','group_users',$updateId])->orwhere(new Expression('FIND_IN_SET(:id_to_find, group_users)'))->addParams([':id_to_find' => $updateId])->all(); // getting selected values

$all_groups_array = [];

 foreach ($all_groups as $group) {
     $all_groups_array[$group->id] = ucfirst($group->group_name);
 }

在 View 上渲染数据:

return $this->render('mngr_userupdate', [
                        'model' => $model,
                        'all_groups_array'=>$all_groups_array,
                        'case'=>$case,
                        'email_error' => 'false',
                        'applied_email' =>   '' ,
                      ]);

所以它正在创建这样的数组:

Array
(
    [11] => Mngr1 group
    [14] => Mngr 11 Group
)

在 View 文件中:

 <?= $form->field($model, 'group_user[]')->dropDownList($all_groups_array,['multiple' => 'multiple']) ?>

它在创建用于数据插入的表单时运行良好。但是如何创建数组,我可以使用它在更新表单上显示选定的值。

编辑:

我刚刚发现如果我像这样使用它

<?= $form->field($model, 'group_user[]')->dropDownList($all_groups_array,['multiple' => 'multiple', 'options'=>['14'=>["Selected"=>true],'11' => ["Selected"=>true]]]); ?>

然后它将开始显示所选的值。即我必须像这样创建数组

[
'14'=>["Selected"=>true],
'11' => ["Selected"=>true]
]

为此,我使用如下循环:

foreach ($selected_groups as $key => $value) {
           $sel_groups_array[$value] = '' // what should be there or else
          }

如何使用循环创建这个数组?

最佳答案

我已经创建了我的问题的解决方案,如果有人遇到此类问题,那么他可以使用如下循环:

foreach ($selected_groups as $group) {

  $sel_groups_array[$group->id] = array("selected"=>true);
}

并且在 View 文件中,您可以使用数组来显示选定的多个值,如下所示:

<?= $form->field($model, 'group_user[]')->dropDownList($all_groups_array,['multiple' => 'multiple','options' => $sel_groups_array]); ?>

因为在更新表单上显示多个选定值的结构,它应该如下所示:

$form->field($model, 'group_user[]')->dropDownList($all_groups_array,['multiple' => 'multiple', 'options'=>['14'=>["Selected"=>true],'11' => ["Selected"=>true]]]); 
// here 14 and 11 I am using as example

关于php - 如何在 Yii2 应用程序的多选下拉列表中显示选定的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42164542/

相关文章:

java - 如何阅读管道分隔线 |来自一个文件并在两个不同的 ArrayList 中拆分整数

java - 添加到数组时强制关闭

yii2 - Yii 2 静态页面

php - MySQL数据未插入数据库

javascript - 通过javascript将图片上传到服务器

php - 创建远程数据库 mySQL PHP

php - 比较2个mysql数据库

php - 删除多个文件

java - 如何从数组中打印出对象?

php - yii2 中超过 120 秒的最长执行时间