php – Yii2:更新后的Kartik Depdrop Widget默认值?
发布时间:2020-12-13 16:55:48 所属栏目:PHP教程 来源:网络整理
导读:我正在使用Kartik Depdrop小部件. 一切正常,除非在我没有选择创建新记录的值的情况下,在更新时,依赖字段应该显示请选择,而它在下拉列表中显示第一个值,并在更新时保存,而我希望“请选择”的值,即使在更新时也可以保存,具体取决于具体情况. 示例 – 我选择与
我正在使用Kartik Depdrop小部件.
一切正常,除非在我没有选择创建新记录的值的情况下,在更新时,依赖字段应该显示请选择,而它在下拉列表中显示第一个值,并在更新时保存,而我希望“请选择”的值,即使在更新时也可以保存,具体取决于具体情况. 示例 – 我选择与房间类别相关的值是包,也可以为空.所以我没有在依赖字段包中选择任何值.但是当我来更新表单时,默认情况下显示下拉列表中的第一个值,而我想请选择默认值. 怎么能纠正这个? $form->field($model,'package')->widget(DepDrop::classname(),[ 'data'=>ArrayHelper::map(appmodelsPackage::find()->all(),'id','package_name' ),'pluginOptions'=>[ 'depends'=>['room_category'],'placeholder'=>'Select...','url'=> yiihelpersUrl::to(['patient-detail/subcat']),] ]) 注意:如果我在创建的从属下拉列表中选择一个值,则更新时的值正确显示. 解决方法
这对我来说很有用.
查看文件 <?php echo $form->field($model,'area_parent_id')->dropDownList(AreaCode::getProvinceOption(),['prompt' => 'select...','id' => 'parent_id']); ?> <?php echo Html::hiddenInput('selected_id',$model->isNewRecord ? '' : $model->area_id,['id'=>'selected_id']); ?> <?php echo $form->field($model,'area_id')->widget(kartikdepdropDepDrop::classname(),[ 'options' => ['id' => 'area_id','class' => '','style' => ''],'pluginOptions' => [ 'depends' => ['parent_id'],'placeholder' => 'select...','initialize' => $model->isNewRecord ? false : true,'url' => Url::to(['/area-code/subcat']),'params'=> ['selected_id'],],]); ?> 控制器文件 public function actionSubcat() { $out = []; if (isset($_POST['depdrop_all_params'])) { $parent_id = $_POST['depdrop_all_params']['parent_id']; $selected_id = $_POST['depdrop_all_params']['selected_id']; $out = AreaCode::find()->select(['id','name'])->where(['parent_id' => $parent_id])->asArray()->all(); return yiihelpersJson::encode(['output' => $out,'selected' => $selected_id]); } return yiihelpersJson::encode(['output' => '','selected' => '']); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |