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 引用是个坏习惯
Mar 12 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
Oct 25 PHP
PHP删除HTMl标签的实现代码
Jun 30 PHP
php调用Google translate_tts api实现代码
Aug 07 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
Sep 06 PHP
通过php删除xml文档内容的方法
Jan 23 PHP
php set_include_path函数设置 include_path 配置选项
Oct 30 PHP
PHP获取文件扩展名的方法实例总结
Jun 10 PHP
PHP延迟静态绑定的深入讲解
Apr 02 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
Dec 07 PHP
PDO::inTransaction讲解
Jan 28 PHP
设定php简写功能的方法
Nov 28 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配置php-fpm启动参数及配置详解
2013/11/04 PHP
php列出mysql表所有行和列的方法
2015/03/13 PHP
php检查日期函数checkdate用法实例
2015/03/19 PHP
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
JS OOP包机制,类创建的方法定义
2009/11/02 Javascript
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
初学js插入节点appendChild insertBefore使用方法
2011/07/04 Javascript
jquery 图片缩放拖动的简单实例
2014/01/08 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
仿JQuery输写高效JSLite代码的一些技巧
2015/01/13 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
js实现Form栏显示全格式时间时钟效果代码
2015/08/19 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
bootstrap fileinput插件实现预览上传照片功能
2018/01/23 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
React组件refs的使用详解
2018/02/09 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
详解Vue-axios 设置请求头问题
2018/12/06 Javascript
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
python人人网登录应用实例
2014/09/26 Python
Python机器学习之SVM支持向量机
2017/12/27 Python
python模块smtplib学习
2018/05/22 Python
python解析含有重复key的json方法
2019/01/22 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
html5 视频播放解决方案
2016/11/06 HTML / CSS
英国音乐设备和乐器商店:Gear4music
2017/10/16 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
英国领先的在线高尔夫商店:Scottsdale Golf
2019/08/26 全球购物
中学生家长评语大全
2014/04/16 职场文书
诚实守信道德模范事迹材料
2014/08/15 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
《揠苗助长》教学反思
2016/02/20 职场文书
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python
win10音频服务未响应怎么解决?win10音频服务未响应未修复的解决方法
2022/08/14 数码科技