yii2 利用dropDownList组件实现三级联动

(以下贴出的只是部分核心代码;并不代表完整思路)

view.php

<?= $form->field($model,'level_one_id')->dropDownList([0=>'--请选择一级分类--']+$model->getCategoryList(0),
        [
            'onchange'=>'
            $(".form-group.field-enterprise-category_id").hide();
            $.post("'.yii::$app->urlManager->createUrl('admin/enterprises/site').'?typeid=1&p_id="+$(this).val(),function(data){
                $("select#enterprises-level_two_id").html(data);
            });',
        ]) ?>

    <?= $form->field($model, 'level_two_id')->dropDownList([0=>'--请选择二级分类--']+$model->getCategoryList($model->level_one_id),
        [
            'onchange'=>'
            $(".form-group.field-enterprise-category_id").show();
            $.post("'.yii::$app->urlManager->createUrl('admin/enterprises/site').'?typeid=2&p_id="+$(this).val(),function(data){
                $("select#enterprises-level_three_id").html(data);
            });',
        ]) ?>
    <?= $form->field($model, 'level_three_id')->dropDownList([0=>'--请选择三级分类--']+$model->getCategoryList($model->level_two_id)) ?>

controller.php
/**
     * 获取商家分类信息
     * @param $p_id
     * @param int $typeid
     */
   public function actionSite($p_id,$typeid=0){
        $model = new Enterprises();
        $model = $model->getCategoryList($p_id);
        if($typeid == 1){$notice="--请选择二级分类--";}else if($typeid == 2 && $model){$notice="--请选择三级分类--";}

        echo Html::tag('option',$notice, ['value'=>'0']) ;

        foreach($model as $value=>$name)
        {控制器中的site方法中用到了html::tag,请使用命名空间use yii\helpers\Html;否则无法正确输出。
            echo Html::tag('option',Html::encode($name),array('value'=>$value));
        }
   }

model.php

public function getCategoryList($p_id){
        $model = EnterpriseCategory::find()->where('p_id=:p_id',[':p_id'=>$p_id])->all();
        return ArrayHelper::map($model, 'id', 'p_name');
    }


参考链接:http://www.yiichina.com/tutorial/468



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值