小伙儿 2014-08-18 14:40:13 29608次浏览 7条评论 23 6 0

下面介绍一下 Yii2.0 的 多选框实现方法

第一种:ActiveForm::checkboxList(); 优点:可以将全部数据生成多选框,自带验证

$form->field($model, 'username')->checkboxList(ArrayHelper::map($data,'id', 'customer_name'));

第二种:ActiveForm::checkbox(); 优点:只生成一个多选框,自带验证

$form->field($model, 'username')->checkbox(ArrayHelper::map($data,'id', 'customer_name'));

第三种:Html::activeCheckbox();

Html::activeCheckbox($model, 'username', ArrayHelper::map($data,'id', 'customer_name'));

第四种:Html::activeCheckboxList();

Html::activeCheckboxList($model, 'username', ArrayHelper::map($data,'id', 'customer_name'));
觉得很赞
  • 评论于 2014-12-10 23:21 举报

    参数不介绍下啊。。.可惜了

    2 条回复
    评论于 2014-12-11 16:28 回复

    回头我一定补上,好不啦

    评论于 2015-04-13 17:43 回复

    补一下参数吧

  • 评论于 2014-12-11 14:00 举报

    小伙儿又出教程了,赞

  • 评论于 2015-08-13 14:34 举报

    我的复选框 为什么提交的时候会有一个隐藏域生成啊,这个可以去掉吗? 我提交的时候已选择的值前面会有一个空值,验证的时候就会报复选框不是整数或者不是字符串?

    public function actionUpdate($id)
    {
        $this->addPath('update'); //设置页面路径
        $this->addBtn(['新增' => ['create']]); //添加新增按钮
    
        $model = $this->findModel($id);
    
        $model->trade_ids =  array_filter(explode(',', $model->trade_ids));
    
        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->succ();
        } else {
            return $this->renderForm('form', [
                'model' => $model,
            ]);
        }
    }
    
  • 评论于 2015-12-15 17:41 举报

    咋能默认选中呢

    5 条回复
    评论于 2015-12-21 10:10 回复

    非常简单 你可以在 控制器 里面使用 loadDefaultValues() 方法来加载默认值 或者在 render 页面之前 为属性赋值 比如 $model->title = 'yii2 的下来菜单默认值' 这样页面就有默认值了 不会的在

    评论于 2015-12-25 15:42 回复

    参数解释下

    评论于 2015-12-29 11:05 回复

    好的 ArrayHelper::map() 此方法会取出数组中的指定列的值 第一个参数是 数据源 第二个参数是 多选框的值 第三个值是 多选框的那个值 举个例子吧
    第三个参数
    你整明白了吗??

    评论于 2015-12-29 15:56 回复

    明白了,think you

    评论于 2017-03-11 16:23 回复

    多选框的多个默认选中(二次编辑时),确定可以吗?

  • 评论于 2015-12-29 10:21 举报

    很好,完美。。。

    1 条回复
    评论于 2015-12-29 10:58 回复

    谢谢 只要能帮助到你们 我就很开心了

  • 评论于 2017-06-19 15:43 举报

    如何实现横向排列呢?

  • 评论于 2017-12-26 15:39 举报

    checkboxlist()提交的数据,应在Model里写个beforeSave,把post得到的多选框数组进行序列化,才能全部保存在一个字段里。

您需要登录后才可以评论。登录 | 立即注册