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 相关文章推荐
PHP教程 预定义变量
Oct 23 PHP
PHP 小心urldecode引发的SQL注入漏洞
Oct 27 PHP
php写的带缓存数据功能的mysqli类
Sep 06 PHP
深入php-fpm的两种进程管理模式详解
Jun 03 PHP
基于PHP常用字符串的总结(待续)
Jun 07 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
May 08 PHP
php版微信公众账号第三方管理工具开发简明教程
Sep 23 PHP
thinkPHP中验证码的简单实现方法
Dec 05 PHP
关于PHP中协程和阻塞的一些理解与思考
Aug 11 PHP
使用PHPExcel导出Excel表
Sep 08 PHP
php连接mysql数据库最简单的实现方法
Sep 24 PHP
Yii框架学习笔记之应用组件操作示例
Nov 13 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生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
PHP扩展开发入门教程
2015/02/26 PHP
PHP类的特性实例分析
2016/09/28 PHP
IE8 引入跨站数据获取功能说明
2008/07/22 Javascript
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
JS获取表格内指定单元格html内容的方法
2015/03/31 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
谈谈JavaScript异步函数发展历程
2015/09/29 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
js实现纯前端的图片预览
2016/04/27 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
2017/09/06 Javascript
简单实现jquery隔行变色
2017/11/09 jQuery
基于JavaScript 性能优化技巧心得(分享)
2017/12/11 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
浅谈Python中range和xrange的区别
2017/12/20 Python
使用python实现kNN分类算法
2019/10/16 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
Python一行代码解决矩阵旋转的问题
2019/11/30 Python
解决redis与Python交互取出来的是bytes类型的问题
2020/07/16 Python
一款利用css3的鼠标经过动画显示详情特效的实例教程
2014/12/29 HTML / CSS
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
美国购买当代和现代家具网站:MODTEMPO
2018/07/20 全球购物
在weblogic中发布ejb需涉及到哪些配置文件
2012/01/17 面试题
银行实习生自我鉴定范文
2013/09/19 职场文书
海南地接欢迎词
2014/01/14 职场文书
关于爱国的演讲稿
2014/05/07 职场文书
绿色出行口号
2014/06/18 职场文书
中职招生先进个人材料
2014/08/31 职场文书
六五普法心得体会2016
2016/01/21 职场文书