如何将选中的数据从复选框保存到数据库

Posted

技术标签:

【中文标题】如何将选中的数据从复选框保存到数据库【英文标题】:How to save selected data from checkbox to database 【发布时间】:2016-11-23 11:17:58 【问题描述】:

我的问题是当我从复选框中选择数据并单击保存按钮时,我不知道它去了哪里。我需要制作另一个表还是在事件表中添加列。 这是 index.php 事件的编码。

    <?php

    use yii\helpers\html;
    use yii\grid\GridView;

    /* @var $this yii\web\View */
    /* @var $dataProvider yii\data\ActiveDataProvider */

    $this->title = 'Events';

    $this->params['breadcrumbs'][] = $this->title;
    ?>

    <div class="events-index">

        <h1><?= Html::encode($this->title) ?></h1>
        <p>
            <?= Html::a('Create Events', ['create'], ['class' => 'btn btn- success']) ?>
        </p>
        <?= GridView::widget([
            'dataProvider' => $dataProvider,
            'columns' => [
                ['class' => 'yii\grid\SerialColumn'],


                'event_title',
                'event_date',
                'event_location:ntext',

                ['class' => 'yii\grid\ActionColumn'],
                ['class' => 'yii\grid\CheckBoxColumn'],
            ],
        ]); ?>
        <?=Html::beginForm(['events/bulk'],'post');?>

    <center><?=Html::submitButton('Save', ['class' => 'btn btn-info',]);?> </center>
    <?= Html::endForm();?> 



    </div>

这是 eventscontroller.php 中的批量操作代码。我是 yii2 的新手,所以我不知道如何编辑以下代码,以便当我在选择事件后单击保存按钮时,它将保存到数据库中。

        public function actionBulk()
       

       $selection=(array)Yii::$app->request->post('selection');//typecasting
       foreach($selection as $id)
            $e=Events::findOne((int)$id);//make a typecasting
            //do your stuff
            $e->save();
       
         

希望有人可以帮助我解决问题。我真的很感激。谢谢。

【问题讨论】:

【参考方案1】:

修改此复选框列的 gridview 配置,使其可以返回模型 ID 而不是表键:

[
    'class' => 'yii\grid\CheckBoxColumn',
    'checkboxOptions' => function ($model, $key, $index, $column) 
        return ['value' => $model->id];
    ,
],

【讨论】:

其实点击保存按钮后,我想知道它会保存在数据库的哪个表中。或者我需要为选定的复选框数据创建另一个模型?我真的很抱歉,因为这对我来说很难@Bizley 我只能根据您提供的代码回答您,我可以看到您尝试将其保存在Events 类中设置的表格中。

以上是关于如何将选中的数据从复选框保存到数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何保存保持选中的复选框?

如何将选中/未选中的复选框值附加到发布数据

如何在数据库中将复选框保存为true或false

选中复选框时,数据表视图将值插入到字段中

如何将 json 数据从我的 jsp 页面发送到 spring rest 控制器

将多个复选框插入数据库 Html Php