2016-09-12 2 views
0

Я безуспешно пытаюсь обновить базу данных из dropDownList CGridView.Yii Обновление базы данных из 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() в модели:

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 элемент, в сценарий предупреждения запускается, но когда я пытаюсь использовать функцию вместо этого, у меня есть ошибка. Я хочу использовать эту функцию, описанную ниже, для обновления значения состояния в базе данных.

function updateState($state, $id) 
{ 
$user = User::model()->findByPk($id); 
$user->state = $state; 
$user->update(); 
} 

Как я могу назвать функцию updateState() вместо предупреждения (0)

+0

Почему вы ссылаетесь на тег yii2, пока ваш код выглядит для Yii1? – scaisEdge

+0

@scaisEdge Решение yii1 или yii2 поможет мне. Может быть, у кого-то может быть решение yii2 для решения моей проблемы. – stfsngue

+0

вы не можете обновлять базу данных, как это, в лучшем случае вы можете фильтровать базу данных с помощью сетки, если это так, также вы ошибаетесь – tinybyte

ответ

0

быстрый ответ: используйте x-editable extension, который сделал впечатляющую работу

других мудрых, вас должны построить что-то в этом роде,

Сделайте выбор пользователя из списка, затем сделайте запрос ajax, чтобы сохранить это изменение.

Смежные вопросы