介绍
怎么在yii2中使用dropDownList实现一个二三级联动?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
视图页面:
& lt; ? php form 美元;=,ActiveForm:开始([ ,,,& # 39;行动# 39;,=祝辞,[& # 39;指数# 39;], ,,,& # 39;方法# 39;,=祝辞,& # 39;得到# 39; ]);,才能?比; & lt;才能!——一级目录——祝辞,& lt; ?=,美元形式→字段(模型中,美元,& # 39;cocate_id& # 39;)→dropDownList(助手:courseCateMap(),(& # 39;提示# 39;,=祝辞,yii:: t(& # 39;后端# 39;,,& # 39;Please select course 美食# 39;)]),?比; & lt;才能!二级目录——祝辞& lt; ?=,美元形式→字段(模型中,美元,& # 39;course_id& # 39;)→dropDownList(助手:courseMap(模型比美元;cocate_id),[& # 39;提示# 39;,=祝辞,yii:: t(& # 39;后端# 39;,,& # 39;Please select first course 美食# 39;)])?比; ,大敌;& lt; !——三级目录——祝辞& lt; ?=,美元形式→字段(模型中,美元,& # 39;person_id& # 39;)→dropDownList(助手:personMap(1,模型→美元cocate_id),,(& # 39;提示# 39;,=祝辞,yii:: t(& # 39;后端# 39;,,& # 39;Please select 简历及# 39;)]),?比; ,, & lt; ?才能php ActiveForm:结束();,?比; 页才能面嵌套js & lt; ?才能php 时间=美元js & # 39;//分类 美元(“# classsearch-cocate_id") .change(函数(),{ var 才能;cocateId =,(这)美元.val();//获取一级目录的值 美元才能(“# classsearch-course_id") . html (“& lt; option 价值=https://www.yisu.com/"/"> ' .yii: t(“后端”,“请选择课程”)。选项> ");//二级显示目录标签 $ (" # classsearch-person_id”)。html(“<选项值=/">”。yii: t(“后端”,“请选择人”)。选项> ");//三级显示目录标签(如果你只需要二级三级的可以直接删除掉) 如果(cocateId> 0) { getCourse (cocateId);//查询二级目录的方法 getPerson (cocateId);//查询三级目录的方法(如果你只需要二级三级的可以直接删除掉) } }); 函数getCourse (cocateId) { var href="的.Url:: (['/ajax/选项'])。’”;//请求的地址 . ajax({美元 “类型”:“获得”, “url”: href、 “数据”:{cocateId: cocateId类型:“课程”},//所需参数和类型 成功:函数(d) { $ (" # classsearch-course_id ") .append (d);//返回值输出 } }); } 函数getPerson (cocateId) { var href="的.Url:: (['/ajax/选项'])。’”;//同上 . ajax({美元 “类型”:“获得”, “url”: href、 “数据”:{cocateId: cocateId类型:“人”},//所需参数和类型 成功:函数(d) { $ (" # classsearch-person_id ") .append (d);//同上 } }); } ”; 美元$ this -> registerJs (js); php ?>
代码:
这个是ajax自己声明的控制器:
& lt; ? php namespace 后端\控制器; class AjaxController  extends BaseController { ,,,public function actionOption (cocateId美元,,类型) {才能 ,,,switch (类型),{ ,,,,,case & # 39;当然,: ,,,,,,,_data 美元;=,助手:courseMap ($ cocateId); ,,,,,,,休息; ,,,,,case & # 39;简历及# 39;: ,,,,,,,_data 美元;=,助手:personMap (1, cocateId美元); ,,,,,,,休息; ,,,,,case & # 39;类# 39;: ,,,,,,,_data 美元;=,助手:classMap ($ cocateId); ,,,,,,,休息; ,,,} ,,,,,_tmp 美元;=,& # 39;& # 39;; ,,,foreach (_data 美元;as key 美元;=祝辞,val美元),{ ,,,,,_tmp 美元。=,“& lt; option 价值=https://www.yisu.com/zixun/薄C涝墓丶!? {$ val}> 选项”; } echo $ _tmp; }
助手。php封装好的类文件可以单独建立文件在配置中引用:
& lt; php ? namespace 后端\组件;//继承的空间路径 class 辅助//声明类 { ,//声明查询的方法,一级 public 才能static function  courseCateMap () {才能 ,,,_data 美元;=,CourseCate:发现()→选择(& # 39;cocate_id cocate_name& # 39;)→(); ,,,_data 美元;=,ArrayHelper:地图(array_merge (_data美元),,& # 39;cocate_id& # 39;,, & # 39; cocate_name& # 39;); ,,,return _data美元; ,,}//声才能明查询的方法,二级 ,,,public static function courseMap (cocateId美元) {才能 ,,,美元条件[& # 39;cocate_id& # 39;],=, cocateId美元; ,,,_data 美元;=,课程:发现()→选择(& # 39;course_id course_name& # 39;)→在(条件)→(); ,,,_data 美元;=,ArrayHelper:地图(array_merge (_data美元),,& # 39;course_id& # 39;,, & # 39; course_name& # 39;); ,,,return _data美元; ,,}//声才能明查询的方法,三级 ,,public static  function personMap (percateId美元,美元cocateId =, 0) {才能 ,,,, null null null null null null null null null null null null null null null null null null null null null怎么在yii2中使用dropDownList实现一个二三级联动