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中处理模拟rewrite 效果
Dec 09 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
Jun 13 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
Jun 26 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
php curl 模拟登录并获取数据实例详解
Dec 22 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
Jan 10 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
Sep 23 PHP
PHP使用观察者模式处理异常信息的方法详解
Sep 24 PHP
laravel 之 Eloquent 模型修改器和序列化示例
Oct 17 PHP
PHP命名空间(namespace)原理与用法详解
Dec 11 PHP
通过PHP实现获取访问用户IP
May 09 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 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多个字符串替换成同一个的解决方法
2013/06/18 PHP
php curl基本操作详解
2013/07/23 PHP
php函数重载的替代方法--伪重载详解
2015/05/08 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
php实现每日签到功能
2018/11/29 PHP
用表格输出1-1000之间的数字实现代码(附特效)
2013/04/21 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
js实现带圆角的两级导航菜单效果代码
2015/08/24 Javascript
JavaScript动态生成二维码图片
2016/04/20 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
Vue项目部署在Spring Boot出现页面空白问题的解决方案
2018/11/26 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
ES6 class的应用实例分析
2019/06/27 Javascript
序列化模块json代码实例详解
2020/03/03 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
[51:50]完美世界DOTA2联赛 Magma vs GXR 第一场 11.07
2020/11/10 DOTA
Python爬取APP下载链接的实现方法
2016/09/30 Python
python编写暴力破解zip文档程序的实例讲解
2018/04/24 Python
通过python顺序修改文件名字的方法
2018/07/11 Python
PyQtGraph在pyqt中的应用及安装过程
2019/08/04 Python
Django如何实现上传图片功能
2019/08/16 Python
python getpass实现密文实例详解
2019/09/24 Python
VSCode中自动为Python文件添加头部注释
2019/11/14 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
python3 实现口罩抽签的功能
2020/03/11 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
EM Cosmetics官网:由彩妆大神Michelle Phan创办的独立品牌
2020/04/27 全球购物
银行给客户的感谢信
2015/01/23 职场文书
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL