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用数组返回无限分类的列表数据的代码
Aug 08 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
Aug 21 PHP
本地机apache配置基于域名的虚拟主机详解
Aug 10 PHP
php生成txt文件标题及内容的方法
Jan 16 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
May 15 PHP
ThinkPHP之N方法实例详解
Jun 20 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
PHP与SQL语句常用大全
Dec 10 PHP
YII2 实现多语言配置的方法分享
Jan 11 PHP
PHP 无限级分类
May 04 PHP
laravel多条件查询方法(and,or嵌套查询)
Oct 09 PHP
laravel返回统一格式错误码问题
Nov 04 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
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
PHP永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
js 小数取整的函数
2010/05/10 Javascript
jquery属性过滤选择器使用示例
2013/06/18 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
使用javascript为网页增加夜间模式
2014/01/26 Javascript
javascript实现表单验证
2016/01/29 Javascript
JS锚点的设置与使用方法
2016/09/05 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
Vue实现用户自定义字段显示数据的方法
2018/08/28 Javascript
JS原型与继承操作示例
2019/05/09 Javascript
使用python检测手机QQ在线状态的脚本代码
2013/02/10 Python
python比较2个xml内容的方法
2015/05/11 Python
在Python程序中操作MySQL的基本方法
2015/07/29 Python
python中numpy基础学习及进行数组和矢量计算
2017/02/12 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
2017/08/31 Python
Python数据分析之双色球中蓝红球分析统计示例
2018/02/03 Python
通过Python模块filecmp 对文件比较的实现方法
2018/06/29 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
对python3中的RE(正则表达式)-详细总结
2019/07/23 Python
python 实现快速生成连续、随机字母列表
2019/11/28 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
python实现学生通讯录管理系统
2021/02/25 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
美国知名的在线旅游服务网站:Priceline
2016/07/23 全球购物
ColourPop美国官网:卡拉泡泡,洛杉矶彩妆品牌
2019/04/28 全球购物
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
中专生自荐信
2013/10/12 职场文书
农村婚礼证婚词
2014/01/08 职场文书
胡雪岩故居导游词
2015/02/06 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书