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 相关文章推荐
定制404错误页面,并发信给管理员的程序
Oct 09 PHP
fleaphp crud操作之find函数的使用方法
Apr 23 PHP
php中++i 与 i++ 的区别
Aug 08 PHP
关于UEditor编辑器远程图片上传失败的解决办法
Aug 31 PHP
php获取文件夹路径内的图片以及分页显示示例
Mar 11 PHP
PHP中的替代语法介绍
Jan 09 PHP
php中ob函数缓冲机制深入理解
Aug 03 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
Dec 10 PHP
php编程中echo用逗号和用点号连接的区别
Mar 26 PHP
[原创]php实现子字符串位置相互对调互换的方法
Jun 02 PHP
php爬取天猫和淘宝商品数据
Feb 23 PHP
php提高脚本性能的4个技巧
Aug 18 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连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
简单的cookie计数器实现源码
2013/06/07 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
2017/07/03 PHP
javascript 网页跳转的方法
2008/12/24 Javascript
浏览器加载、渲染和解析过程黑箱简析
2012/11/29 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
vue v-model表单控件绑定详解
2017/05/17 Javascript
Vue.Draggable实现拖拽效果
2020/07/29 Javascript
javascript观察者模式实现自动刷新效果
2017/09/05 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
2017/12/11 Javascript
webpack4 入门最简单的例子介绍
2018/09/05 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
JavaScript点击按钮生成4位随机验证码
2021/01/28 Javascript
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python使用clear方法清除字典内全部数据实例
2015/07/11 Python
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
Python实现的三层BP神经网络算法示例
2018/02/07 Python
利用Anaconda简单安装scrapy框架的方法
2018/06/13 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
使用Python刷淘宝喵币(低阶入门版)
2019/10/30 Python
Django实现WebSSH操作物理机或虚拟机的方法
2019/11/06 Python
Python matplotlib画曲线例题解析
2020/02/07 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
python实现梯度法 python最速下降法
2020/03/24 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
2020/06/02 Python
pandas抽取行列数据的几种方法
2020/12/13 Python
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
工程造价自荐信
2013/10/09 职场文书
初中三年学生的学习自我评价
2013/11/13 职场文书
关于青春的演讲稿800字
2014/08/22 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
Python中的变量与常量
2021/11/11 Python