Изменить статус пользователя из SwitchInput в выпадающий список

В настоящее время у меня есть существующий код для отображения статуса пользователя как «Неактивный» или «Активный» на основе поля ban_time таблицы User. Когда статус пользователя «Неактивен», поле ban_time будет обновляться в соответствии с текущим временным интервалом (я полагаю, он использует внешний плагин оболочки)

$form->field($user, 'ban_time')->widget(SwitchInput::classname(), [
'type' => SwitchInput::CHECKBOX,
'containerOptions' => ['class' => 'inner-form-group'],
'pluginOptions' => [
'state' => empty($user->ban_time),
'handleWidth' => 60,
'onText' => 'Active',
'offText' => 'Inactive'
],
'pluginEvents' => [
"switchChange.bootstrapSwitch" => "function(event, state) { $('[name=\'User[ban_time]\']').val(state ? 0 : 1) }",
]
])->label('Status');

Теперь мне нужно добавить больше статуса вместо «Неактивно» или «Активно». Поэтому я хочу изменить это поле на dropDownList, но при изменении статуса пользователя, ban_time не был изменен

$form->field($user, 'ban_time')->dropDownList(
[empty($user->ban_time) =>'Active', !empty($user->ban_time) =>'Inactive']
)->label('Status');

Пожалуйста, помогите мне, как это изменить

1

Решение

например, если у вас есть выпадающий список, как показано ниже

  echo $form->dropDownListGroup(
$model, 'status', array(
'wrapperHtmlOptions' => array(),
'widgetOptions' => array(
'data' =>$model->getDropdownvalue(),
'htmlOptions' => array(
'prompt' => 'Select Project',
'ajax' => array(
'type' => 'POST',
'url' => your url,
//'dataType' => 'json',
'data'=>array('status'=>'js:this.value'),

)

в вашем контроллере вы получите значение выпадающего списка, используя URL

public function actiondropdownvalue(){
$model = new status();
$status = $_POST['status'];
$model->save();

этот пример только показывает, как это будет работать. Вам потребуется идентификатор пользователя, чтобы сохранить статус для конкретного пользователя, чтобы обновить или сохранить статус.

1

Другие решения

Вы можете сделать свой элемент формы как dropDownList как

     $items = [1 =>'Active', 0 =>'Inactive' ,2 => 'Subscribed' ,3 => 'Deleted'];
$form->field($user, 'ban_time')->dropDownList($items)->label('Status');

Увидеть Выпадающий список

1

По вопросам рекламы [email protected]