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 相关文章推荐
综合图片计数器
Oct 09 PHP
PHP中Session的概念
Oct 09 PHP
PHP中动态显示签名和ip原理
Mar 28 PHP
IIS7.X配置PHP运行环境小结
Jun 09 PHP
thinkphp普通查询与表达式查询实例分析
Nov 24 PHP
PHP处理会话函数大总结
Aug 05 PHP
yii2超好用的日期组件和时间组件
May 05 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
Sep 26 PHP
实例讲解通过​PHP创建数据库
Jan 20 PHP
PHP反射学习入门示例
Jun 14 PHP
laravel 配置路由 api和web定义的路由的区别详解
Sep 03 PHP
Swoole源码中如何查询Websocket的连接问题详解
Aug 30 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 分页类(模仿google)-面试题目解答
2009/09/13 PHP
PHP抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
js阻止冒泡及jquery阻止事件冒泡示例介绍
2013/11/19 Javascript
javascript继承机制实例详解
2014/11/20 Javascript
node.js中的console.log方法使用说明
2014/12/09 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
浅谈JavaScript字符串与数组
2015/06/03 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
2015/11/06 Javascript
纯JavaScript代码实现文本比较工具
2016/02/17 Javascript
详解js前端代码异常监控
2017/01/11 Javascript
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
利用Node.js批量抓取高清妹子图片实例教程
2018/08/02 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
2019/10/30 Javascript
js实现抽奖的两种方法
2020/03/19 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
2020/07/24 Javascript
[48:32]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python基础教程之对象和类的实际运用
2014/08/29 Python
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
Python使用folium excel绘制point
2019/01/03 Python
Python一行代码实现快速排序的方法
2019/04/30 Python
简单了解python gevent 协程使用及作用
2019/07/22 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
python爬取微博评论的实例讲解
2021/01/15 Python
python3.9.1环境安装的方法(图文)
2021/02/02 Python
python中time.ctime()实例用法
2021/02/03 Python
2014厂务公开实施方案
2014/02/17 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
2015年学校保卫部工作总结
2015/05/11 职场文书
小学运动会加油稿
2015/07/22 职场文书
python爬取网页版QQ空间,生成各类图表
2021/06/02 Python
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python