В настоящее время у меня есть существующий код для отображения статуса пользователя как «Неактивный» или «Активный» на основе поля 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');
Пожалуйста, помогите мне, как это изменить
например, если у вас есть выпадающий список, как показано ниже
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();
этот пример только показывает, как это будет работать. Вам потребуется идентификатор пользователя, чтобы сохранить статус для конкретного пользователя, чтобы обновить или сохранить статус.
Вы можете сделать свой элемент формы как dropDownList как
$items = [1 =>'Active', 0 =>'Inactive' ,2 => 'Subscribed' ,3 => 'Deleted'];
$form->field($user, 'ban_time')->dropDownList($items)->label('Status');
Увидеть Выпадающий список