Yii2实现上下联动下拉框功能的方法


Posted in PHP onAugust 10, 2016

本文实例讲述了Yii2实现上下联动下拉框功能的方法。分享给大家供大家参考,具体如下:

首先我先解释下什么是上下联动的下拉框

假如一个view里面有两个select,第一个是公司名,第二个是分公司名。公司有多个,每个公司又有多个分公司,我们实现的就是点击当前公司后,分公司里面显示的事当前公司的分公司。

或者你直接理解成选择所属省份后,下面的select显示的是当前省份的县。

原理:

点击第一个select后,执行ajax获取当前公司的分公司,并使用jQuery修改分公司内容

两个select的部分视图代码如下:

<?= $form->field($model, 'companies_company_id')->dropDownList(
  \yii\helpers\ArrayHelper::map(\backend\models\Companies::find()->all(),'company_id','company_name'),
  [
    'prompt'=>'select Company',
    'onchange'=>'
      $.post("index.php?r=branches/lists&id='.'"+$(this).val(),function(data){
        $("select#departments-branches_branch_id").html(data);
      });',
  ]
) ?>
<?= $form->field($model, 'branches_branch_id')->dropDownList(
  \yii\helpers\ArrayHelper::map(\backend\models\Branches::find()->all(),'branch_id','branch_name'),
  [
    'prompt'=>'Select Branches',
  ]
) ?>

list方法代码:

public function actionLists($id)
{
  $countBranches = Branches::find()
    ->where(['companies_company_id' => $id])
    ->count();
  $branches = Branches::find()
    ->where(['companies_company_id' => $id])
    ->all();
  if ($countBranches > 0) {
    foreach ($branches as $branche) {
      echo "<option value='" . $branche->branch_id . "'>" . $branche->branch_name . "</option>";
    }
  } else {
    echo "<option>-</option>";
  }
}

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
Sep 24 PHP
将文件夹压缩成zip文件的php代码
Dec 14 PHP
ionCube 一款类似zend的PHP加密/解密工具
Jul 25 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
Jun 02 PHP
thinkphp中连接oracle时封装方法无法用的解决办法
Jun 17 PHP
php定时计划任务与fsockopen持续进程实例
May 23 PHP
php+jQuery.uploadify实现文件上传教程
Dec 26 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
Nov 25 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
Apr 20 PHP
Laravel框架路由设置与使用示例
Jun 12 PHP
提高Laravel应用性能方法详解
Jun 24 PHP
Yii2基于Ajax自动获取表单数据的方法
Aug 10 #PHP
教你在header中隐藏php的版本信息
Aug 10 #PHP
PHP通过加锁实现并发情况下抢码功能
Aug 10 #PHP
PHP身份证校验码计算方法
Aug 10 #PHP
PHP5.4起内置web服务器使用方法
Aug 09 #PHP
PHP Filter过滤器全面解析
Aug 09 #PHP
学习PHP Cookie处理函数
Aug 09 #PHP
You might like
php 接口类与抽象类的实际作用
2009/11/26 PHP
CodeIgniter启用缓存和清除缓存的方法
2014/06/12 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
不懂JavaScript应该怎样学
2008/04/16 Javascript
Javascript typeof 用法
2008/12/28 Javascript
MooTools 1.2介绍
2009/09/14 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
select多选 multiple的使用示例
2014/06/16 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
2015/04/24 Javascript
JS+CSS3模拟溢出滚动效果
2016/08/12 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
webpack学习教程之publicPath路径问题详解
2017/06/17 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
Vue组件基础用法详解
2020/02/05 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
[00:57]英雄,你的补给到了!
2020/11/13 DOTA
python实现下载指定网址所有图片的方法
2015/08/08 Python
详细介绍Python的鸭子类型
2016/09/12 Python
python事件驱动event实现详解
2018/11/21 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
python实现一个猜拳游戏
2020/04/05 Python
Python实现代码块儿折叠
2020/04/15 Python
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
加拿大便宜的隐形眼镜商店:Clearly
2016/09/15 全球购物
应届生法律求职信
2013/10/22 职场文书
应届生会计求职信
2013/11/11 职场文书
财务管理专业推荐信
2013/11/19 职场文书
销售经理工作职责
2014/02/03 职场文书
《海伦?凯勒》教学反思
2014/04/17 职场文书
股指期货心得体会
2014/09/10 职场文书
教师病假条范文
2015/08/17 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书
使用css样式设计一个简单的html登陆界面的实现
2021/03/30 HTML / CSS
升级 Win11 还是坚守 Win10?微软 Win11 新系统缺失功能大盘点
2022/04/05 数码科技