Nafania писал(а):Там прямо комментарий есть в Cmenu с этим примером.
Вполне возможно.
Я даже что-то видел с этим #.
Там было написано что-то про якорь.
Второй раз найти не получается
Н-да ...
В общем понятно, хотя это практически не приблизило меня к стоящей задаче.
Может быть поможете ?
Хочу сделать групповое удаление записей, отмеченных чекбоксами в CGridView.
Код: Выделить всё
$columns = array(
'check-boxes'=>array(
'id'=>'check-boxes',
'class'=>'CCheckBoxColumn',
'selectableRows'=>2,
),
'name',
array(
'class'=>'CButtonColumn',
),
);
if(!Yii::app()->user->checkAccess('manageStudents'))
unset($columns['check-boxes']);
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'students-grid',
'dataProvider'=>$students->grouplist(),
'filter'=>$students,
'columns'=>$columns,
));
По совету данному ранее, я прописываю у чекбоксов параметр id (см. выше), оборачиваю CGridView в ActiveForm
Код: Выделить всё
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'students-form',
'enableAjaxValidation'=>false,
)); ?>
// здесь находится CGridView
<?php $this->endWidget(); ?>
В контроллере делаю примерно так
Код: Выделить всё
if(isset($_POST['check-boxes'])) {
$items = $_POST['check-boxes'];
$model = Students::model();
$criteria = new CDbCriteria();
$criteria->addInCondition('id', $items);
if(!$model->deleteAll($criteria))
throw new CHttpException(400,'Invalid request. DataBase error.');
}
И в принципе это даже работает, если на форме есть
Код: Выделить всё
<?php echo CHtml::submitButton('Удалить выбранных'); ?>
Но вот мне захотелось заменить submitButton на аналогичный пункт бокового меню
Код: Выделить всё
$this->menu = array(
array('label'=>'Удалить выбранных', 'url'=>'#', 'linkOptions'=>array('submit'=>array('students/deleteSelected'),'confirm'=>'Are you sure ?')),
Ну а дальше вы знаете (см. старт-топик)