我尝试从CGridView的dropDownList更新数据库,但没有成功。
这是CGridView的代码:
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id' => 'invoice-grid',
'dataProvider' => $model->search(),
'filter' => $model,
'columns' => array(
'id',
'username',
array(
'name' => 'state',
'type' => 'raw',
'value' => '$data->stateDropdown',
'filter' => array('0' => Yii::t('app', 'No'),
'1' => Yii::t('app', 'Yes'),
),
),
array(
'class' => 'CButtonColumn',
'template'=>'{view}',
),
),
)); ?>
以下是模型中函数 stateDropDown()的getter:
public function getStateDropdown()
{
$state = array(
0 => 'No',
1 => 'Yes',
);
return CHtml::dropDownlist('state', $this->state, $state, array(
'class' => 'state',
'data-id' => $this->id,
'onchange' => 'alert(0);',
));
}
当我更改dropDownList元素时,会触发警报脚本,但是当我尝试使用某个函数时,我有一个错误。我想使用下面描述的这个函数来更新数据库中的state值。
function updateState($state, $id)
{
$user = User::model()->findByPk($id);
$user->state = $state;
$user->update();
}
如何真正调用函数updateState()代替alert(0)
答案 0 :(得分:0)