CGridView и checkbox

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Nihisil
Сообщения: 118
Зарегистрирован: 2010.08.05, 06:39

CGridView и checkbox

Сообщение Nihisil »

Можно сделать чтобы при клику по чекбоксу в гриде, автоматический выполнился экшен? Мне нужно выбранную сущность сохранить в другую таблицу. Такое возможно реализовать, с помощью аякса?
navy
Сообщения: 21
Зарегистрирован: 2010.11.15, 12:59

Re: CGridView и checkbox

Сообщение navy »

Я сделал так (лишние поля поскипал для краткости)

Код: Выделить всё

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'page-grid',
    'columns'=>array(
         ...,
         array( 
           'name' => 'active', 
           'class' => 'CCheckBoxColumn', 
           'checked'=>'$data->active',
           'value'=>'$data->id',
           'header'=>'Вкл.',
           'checkBoxHtmlOptions'=>array('onclick'=>'$.get(\'/admin/page/active/id/\'+this.value+\'/e/\'+(this.checked?1:0),\'\',function(data){} );'),
        ),
    ),
)); ?>
Соответственно при клике вызывается (при $model->id = 4 и выбранном чекбоксе) /admin/page/active/id/4/e/1
в экшен приходят параметры $id=4, $e=1

Cкорее всего можно и не через get сделать а через post. но мне и так нормально.
Nihisil
Сообщения: 118
Зарегистрирован: 2010.08.05, 06:39

Re: CGridView и checkbox

Сообщение Nihisil »

В вашем примере когда выбираешь одну строку, у второй чекбокс сбрасывается. Можно это как-то убрать?
Vic
Сообщения: 109
Зарегистрирован: 2010.03.12, 01:55

Re: CGridView и checkbox

Сообщение Vic »

Может пригодится:
у грида есть свойство selectionChanged, может на него повесить событие?

Код: Выделить всё

................
'dataProvider'=>$model->search(),
'filter'=>$model,
'template'=>'{items}{pager}',
 'selectionChanged'=>'js:function(id){ alert("Row = " + id + " key = " + $.fn.yiiGridView.getSelection(id)) }'
................
 
Тогда при клике на строке будет вызываться Ваш перенос.

Но это так, на всякий случай, вдруг поможет.
navy
Сообщения: 21
Зарегистрирован: 2010.11.15, 12:59

Re: CGridView и checkbox

Сообщение navy »

Код: Выделить всё

<?php $this->widget('zii.widgets.grid.CGridView', array(
        'id'=>'page-grid',
        'selectableRows'=>0,

 
Да выкинул лишку лишнего :) , нужно еще 'selectableRows'=>0 задать
минус такого подхода в том что нельзя делать групповые операции, но меня это устраивает
Ответить