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配置文件中最常用四个ini函数
Mar 19 PHP
php include,include_once,require,require_once
Sep 05 PHP
Godaddy空间Zend Optimizer升级方法
May 10 PHP
常见的PHP五种设计模式小结
Mar 23 PHP
无JS,完全php面向过程数据分页实现代码
Aug 27 PHP
整理的一些实用WordPress后台MySQL操作命令
Jan 07 PHP
PHP获取中英混合字符串长度的方法
Jun 07 PHP
PHP 快速排序算法详解
Nov 10 PHP
PHP中使用break跳出多重循环代码实例
Jan 21 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
php-fpm服务启动脚本的方法
Apr 27 PHP
Thinkphp 框架扩展之应用模式实现方法分析
Apr 27 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
php4的彩蛋
2006/10/09 PHP
PHP define函数的使用说明
2008/08/27 PHP
PHP Cookie的使用教程详解
2013/06/03 PHP
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
javascript测试题练习代码
2012/10/10 Javascript
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
浅析js中2个等号与3个等号的区别
2013/08/06 Javascript
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
Javascript学习笔记之函数篇(六) : 作用域与命名空间
2014/11/23 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
2016/09/17 Javascript
JS库之ParticlesJS使用简介
2017/09/12 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
python实现给字典添加条目的方法
2014/09/25 Python
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
selenium+python环境配置教程详解
2019/05/28 Python
使用Python实现毫秒级抢单功能
2019/06/06 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
DRF框架API版本管理实现方法解析
2020/08/21 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
图解CSS3制作圆环形进度条的实例教程
2016/05/26 HTML / CSS
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
大学生文员专业个人求职信范文
2014/01/05 职场文书
专科应届毕业生求职信
2014/06/04 职场文书
2014大学校园光棍节活动策划书
2014/09/29 职场文书
golang协程池模拟实现群发邮件功能
2021/05/02 Golang
聊聊golang中多个defer的执行顺序
2021/05/08 Golang