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吗?
答案 0 :(得分:1)
我可以为复选框指定ID吗?当然,您最好明确设置复选框列ID:
'class' => 'CCheckBoxColumn', 'id'=>'column1', ...
these docs。
这样你就可以坚定地设置它,你就不会有这些yt0
,yt2
......
你可以为按钮做同样的事情。请参阅TButton文档。
此外,您需要在逻辑条件下使用双&&
:
isset($_POST['profile-information-grid_c12']) & isset($_POST['yt1'])