更改CGridView中的id复选框

时间:2014-08-03 08:18:24

标签: php checkbox yii cgridview

cgridViewtable中有2列复选框,视图页中有两个引导小部件TbButton。
我无法获得非常好的复选框价值。我在复选框中的值转移到控制器但更改了复选框的ID经过一段时间后,并且控制器不知道复选框,

查看:

$form = $this->beginWidget('bootstrap.widgets.TbActiveForm', array(
    'id' => 'profile-information-form',
    'enableAjaxValidation' => false,
        ));

$this->widget('bootstrap.widgets.TbButton', array('buttonType' => 'submit', 'type' => 'primary', 'label' => Yii::t('fa_ir', 'First validation'),));

   $this->widget('bootstrap.widgets.TbButton', array('buttonType' => 'submit', 'type' => 'primary', 'label' => Yii::t('fa_ir', 'End validation'),));



 $this->widget('zii.widgets.grid.CGridView', array(
        'id' => 'profile-information-grid',
        'dataProvider' => $model->children(),
        'filter' => $model,
        'columns' => array(
            array(
                'header' => '',
                'value' => '$this->grid->dataProvider->pagination->offset + $row+1', //  row is zero based
            ),
            array(
                'name' => 'ProfileInformation.user.scope',
                'value' => 'CHtml::encode($data->user->scope->name)',
                'filter' => Scope::model()->options,
            ),

            array(
                'name' => 'id',
                'value' => 'CHtml::encode($data->id)',
            ),
            array(
                'name' => 'center',
                'value' => 'CHtml::encode($data->center)',
            ),

            array(
                'name' => 'sendCount',
                'value' => 'CHtml::encode($data->sendCount)',
                'filter' => '',
            ),
            // Use CCheckbox column with selectableRows = 2 for Select All

            array('class' => 'CCheckBoxColumn', 'selectableRows' => 2, 'visible' => (Lookup::isUser2(Yii::app()->user->id) or Lookup::isAdmin(Yii::app()->user->id))),


            array('class' => 'CCheckBoxColumn', 'selectableRows' => 2, 'visible' => (Lookup::isUser1(Yii::app()->user->id) or Lookup::isAdmin(Yii::app()->user->id))),


        ),
    ));

// action button  

    $this->endWidget();

控制器:

if (isset($_POST['profile-information-grid_c10']) & isset($_POST['yt0'])) {

            ////Do action1
        }
        if (isset($_POST['profile-information-grid_c12']) & isset($_POST['yt1'])) {
            ////Do action2
            }
        }

我的问题出在$ _POST [' profile-information-grid_c10']和_POST [' profile-information-grid_c12']之前,id是$ _POST [' profile-information-grid_c8']和$ _POST [' profile-information-grid_c10'],现在是$ _POST [' profile-information-grid_c12']和$ _POST [ '轮廓信息-grid_c14']
。 我的问题非常复杂。我无法解释得很好。
我想要一个修复ID。 我不知道为什么要更改复选框的ID? 我可以为复选框指定ID吗?

1 个答案:

答案 0 :(得分:1)

我可以为复选框指定ID吗?当然,您最好明确设置复选框列ID: 'class' => 'CCheckBoxColumn', 'id'=>'column1', ... these docs。 这样你就可以坚定地设置它,你就不会有这些yt0yt2 ...... 你可以为按钮做同样的事情。请参阅TButton文档。

此外,您需要在逻辑条件下使用双&&isset($_POST['profile-information-grid_c12']) & isset($_POST['yt1'])