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 相关文章推荐
打造计数器DIY三步曲(下)
Oct 09 PHP
PHP中文件上传的一个问题
Sep 04 PHP
php中生成随机密码的自定义函数代码
Oct 21 PHP
PHP json_decode函数详细解析
Feb 17 PHP
PHP引用(&amp;)各种使用方法实例详解
Mar 20 PHP
PHP图片处理之图片旋转和图片翻转实例
Nov 19 PHP
PHP  Yii清理缓存的实现方法
Nov 10 PHP
PHP验证终端类型是否为手机的简单实例
Feb 07 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
May 20 PHP
php7基于递归实现删除空文件夹的方法示例
Jun 15 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
PHP实现字符串的全排列详解
Apr 24 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实现jQuery扩展函数
2009/10/30 PHP
php 中英文语言转换类
2011/09/07 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
html中table数据排序的js代码
2011/08/09 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
jQuery动态添加 input type=file的实现代码
2012/06/14 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
javascript数据结构中栈的应用之符号平衡问题
2017/04/11 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
vue-cli3 配置开发与测试环境详解
2019/05/17 Javascript
vue webpack重写cookie路径的方法
2019/07/10 Javascript
nodejs实现百度舆情接口应用示例
2020/02/07 NodeJs
[03:48]大碗DOTA
2019/07/25 DOTA
使用python装饰器验证配置文件示例
2014/02/24 Python
python中pycurl库的用法实例
2014/09/30 Python
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
在Python的Flask框架中实现单元测试的教程
2015/04/20 Python
Python wxPython库Core组件BoxSizer用法示例
2018/09/03 Python
Python 实现数组相减示例
2019/12/27 Python
python实现在线翻译功能
2020/03/03 Python
Jupyter notebook 启动闪退问题的解决
2020/04/13 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
W Concept美国:精选全球独立设计师
2017/02/22 全球购物
印尼美容产品购物网站:PerfectBeauty.id
2017/12/01 全球购物
高三语文教学反思
2014/01/15 职场文书
青春励志演讲稿范文
2014/08/25 职场文书
上党课的心得体会
2014/09/02 职场文书
银行委托书范本
2014/09/28 职场文书
华清池导游词
2015/02/02 职场文书
世界文化遗产导游词
2015/02/13 职场文书