dpvhv66448 2017-02-13 13:39
浏览 67

Yii2 - 如何在depdrop child中显示操作更新中的选定值?

I have use Extension from Kartik, for create dependent dropdown, called DepDrop.

My dependent schema Regencies->District->Villages

When Create Action, everything Okay, running wells, but when Update Action, in Child Dropdown don't show Selected value.

Here my View Code :

<?= $form->field($model, 'fk_regencies_id')->dropDownList(ArrayHelper::map(Regencies::find()->all(),'id','name'), ['id'=>'regency_id']);?>

                          <?= Html::hiddenInput($model->fk_districs_id, $model->fk_districs_id, ['id'=>$model->fk_districs_id]) ?>

                          <?= $form->field($model, 'fk_districs_id')->widget(DepDrop::classname(), [

                                'options'=>['id'=>'district-id'],
                                'pluginOptions'=>[
                                    'depends'=>['regency_id'],
                                    'placeholder'=>'Select...',
                                    'url'=>Url::to(['/calonpegawai/district']),
                                    'params'=>[$model->fk_districs_id]
                                ]
                            ]) ?>

And Here My Controller :

public function actionDistrict() {
    $out = [];
if (isset($_POST['depdrop_parents'])) {
    $parents = $_POST['depdrop_parents'];
    if ($parents != null) {
        $regency_id = $parents[0];
        $param1 = null;

        if (!empty($_POST['depdrop_params'])) {
            $params = $_POST['depdrop_params'];
            $param1 = $params[0]; // get the value of input-type-1

        }

        $out = Districts::getDistrictList($regency_id); 
        //$out[1] = ['id'=>$regency_id, 'name'=>$param1];
        $selected = Districts::getDefaultDistrict($param1);
        //$selected[1] = ['id'=>$regency_id, 'name'=>$param1];
        // the getDefaultSubCat function will query the database
        // and return the default sub cat for the cat_id

        echo Json::encode(['output'=>$out, 'selected'=>$selected]);
        return;
    }
}
echo Json::encode(['output'=>'', 'selected'=>'']);
}

My Model :

public function getDistrictList($regency_id)
{
    $data=\backend\models\Districts::find()
       ->where(['regency_id'=>$regency_id])
       ->select(['id','name' ])->asArray()->all();

    return $data;

}
public function getDefaultDistrict($param1)
{
    $data=\backend\models\Districts::find()
       ->where(['id'=>$param1])
       ->select(['id','name' ])->asArray()->all();

    return $data;

}

ajaxresponse

  • 写回答

1条回答 默认 最新

  • dongyuan8312 2017-02-23 09:02
    关注

    Add in your view:'data'=>[$key=>$value];

    <?= $form->field($model, 'fk_regencies_id')->dropDownList(ArrayHelper::map(Regencies::find()->all(),'id','name'), ['id'=>'regency_id']);?>
    
                          <?= Html::hiddenInput($model->fk_districs_id, $model->fk_districs_id, ['id'=>$model->fk_districs_id]) ?>
    
                          <?= $form->field($model, 'fk_districs_id')->widget(DepDrop::classname(), [
                                'data' => [$model->fk_regencies_id=>$model->fk_regencies_id],
                                'options'=>['id'=>'district-id'],
    
                                'pluginOptions'=>[
                                    'depends'=>['regency_id'],
                                    'placeholder'=>'Select...',
                                    'url'=>Url::to(['/calonpegawai/district']),
                                    'params'=>[$model->fk_districs_id]
                                ]
                            ]) ?>
    

    Add javascript in your view:

    $script = <<< JS
        $("#regency_id").change(function(){
          $("#district-id").depdrop({
            depends: ['regency_id'],
            url: '/calonpegawai/district'
        });
        }).change();
    

    JS; $this->registerJs($script);

    Hope to help you.

    评论

报告相同问题?

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line