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环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
Mar 16 PHP
手把手教你使用DedeCms V3的在线采集图文教程
Apr 03 PHP
用php获取远程图片并把它保存到本地的代码
Apr 07 PHP
PHP 反射机制实现动态代理的代码
Oct 22 PHP
php 获取mysql数据库信息代码
Mar 12 PHP
使用PHP提取视频网站页面中的FLASH地址的代码
Apr 17 PHP
php不写闭合标签的好处
Mar 04 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
May 13 PHP
学习php设计模式 php实现门面模式(Facade)
Dec 07 PHP
PHP导出Excel实例讲解
Jan 24 PHP
Yii框架的布局文件实例分析
Sep 04 PHP
PHP sdk文档处理常用代码示例解析
Dec 09 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时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
PHP实现的统计数据功能详解
2016/12/06 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
js压缩利器
2007/02/20 Javascript
JavaScript 设计模式 安全沙箱模式
2010/09/24 Javascript
JavaScript中把数字转换为字符串的程序代码
2013/06/19 Javascript
innerText 使用示例
2014/01/23 Javascript
javascript if条件判断方法小结
2014/05/17 Javascript
jQuery选择器源码解读(二):select方法
2015/03/31 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
2017/07/24 Javascript
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
python实现dict版图遍历示例
2014/02/19 Python
Python中的ceil()方法使用教程
2015/05/14 Python
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
在CMD命令行中运行python脚本的方法
2018/05/12 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
Python初学者需要注意的事项小结(python2与python3)
2018/09/26 Python
python之验证码生成(gvcode与captcha)
2019/01/02 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
python中openpyxl和xlsxwriter对Excel的操作方法
2021/03/01 Python
国际礼品店:GiftsnIdeas
2018/05/03 全球购物
简历里的自我评价
2014/01/31 职场文书
创新型城市实施方案
2014/03/06 职场文书
个人委托书
2014/07/31 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
Python批量将csv文件转化成xml文件的实例
2021/05/10 Python
详解Java实现数据结构之并查集
2021/06/23 Java/Android
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL