Изменить идентификационные флажки в CGridView

есть два столбца флажка в cgridViewtable и два виджета bootstrap TbButton на странице просмотра. Я не могу получить значение моего флажка очень хорошо. Мое значение в чекбоксах переносится в контроллер, но изменено идентификатор флажков. По истечении определенного периода времени, а контроллер не знает флажок,

Посмотреть:

$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 [' profile-information-grid_c14 ']. моя проблема очень связана. Я не могу объяснить очень хорошо. Я хочу иметь идентификатор исправления. Я не понимаю, почему нужно изменить идентификатор флажка? Можно ли назначить идентификаторы для флажков?

1 ответ

Можно ли назначить идентификаторы для флажков? Конечно, вам лучше явно установить checkbox column id: 'class' => 'CCheckBoxColumn', 'id'=>'column1',... см. Эти документы. Таким образом, вы твердо установите его, и у вас не будет таких вещей, как эти yt0, yt2... То же самое можно сделать для кнопок. См. Документы TButton.

Также вам нужно использовать ****** && в логическом состоянии: isset($_POST['profile-information-grid_c12']) & isset($_POST['yt1'])

licensed under cc by-sa 3.0 with attribution.