yii2中dropDownList实现二级和三级联动写法
整理文档,搜刮出一个yii2中dropDownList实现二级和三级联动写法的代码,稍微整理精简一下做下分享。
视图页面:
['index'], 'method'=>'get', ]);?> =$form->field($model,'cocate_id')->dropDownList(Helper::courseCateMap(),['prompt'=>yii::t('backend','Pleaseselectcoursecate')])?> =$form->field($model,'course_id')->dropDownList(Helper::courseMap($model->cocate_id),['prompt'=>yii::t('backend','Pleaseselectfirstcoursecate')])?> =$form->field($model,'person_id')->dropDownList(Helper::personMap(1,$model->cocate_id),['prompt'=>yii::t('backend','Pleaseselectperson')])?> 页面嵌套js '.yii::t('backend','Pleaseselectcourse').'");//二级显示目录标签 $("#classsearch-person_id").html("'.yii::t('backend','Pleaseselectperson').'");//三级显示目录标签(如果你只需要二级三级的可以直接删除掉) if(cocateId>0){ getCourse(cocateId);//查询二级目录的方法 getPerson(cocateId);//查询三级目录的方法(如果你只需要二级三级的可以直接删除掉) } }); functiongetCourse(cocateId){ varhref="'.Url::to(['/ajax/option']).'";//请求的地址 $.ajax({ "type":"GET", "url":href, "data":{cocateId:cocateId,type:"course"},//所需参数和类型 success:function(d){ $("#classsearch-course_id").append(d);//返回值输出 } }); } functiongetPerson(cocateId){ varhref="'.Url::to(['/ajax/option']).'";//同上 $.ajax({ "type":"GET", "url":href, "data":{cocateId:cocateId,type:"person"},//所需参数和类型 success:function(d){ $("#classsearch-person_id").append(d);//同上 } }); } '; $this->registerJs($js); ?>
php代码:
这个是ajax自己声明的控制器:
$val){ $_tmp.="{$val}"; } echo$_tmp; }
Helper.php封装好的类文件可以单独建立文件在配置中引用:
select('cocate_id,cocate_name')->all(); $_data=ArrayHelper::map(array_merge($_data),'cocate_id','cocate_name'); return$_data; } //声明查询的方法二级 publicstaticfunctioncourseMap($cocateId) { $condition['cocate_id']=$cocateId; $_data=Course::find()->select('course_id,course_name')->where($condition)->all(); $_data=ArrayHelper::map(array_merge($_data),'course_id','course_name'); return$_data; } //声明查询的方法三级 publicstaticfunctionpersonMap($percateId,$cocateId=0) { $shopId=Yii::$app->user->identity->shop_id; $condition=[]; if($shopId) { $condition['shop_id']=$shopId; } if($percateId) { $condition['percate_id']=$percateId; } if($cocateId) { $condition['cocate_ids']=intval($cocateId); } $_data=Person::find()->select('person_id,person_name')->where($condition)->all(); $_data=ArrayHelper::map(array_merge($_data),'person_id','person_name'); return$_data; } } ?>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。