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连mysql和oracle数据库性能比较
Oct 09 PHP
一个域名查询的程序
Oct 09 PHP
php 高性能书写
Dec 11 PHP
PHP计划任务、定时执行任务的实现代码
Apr 23 PHP
php跨域cookie共享使用方法
Feb 20 PHP
php使用正则表达式进行字符串搜索的方法
Mar 23 PHP
一波PHP中cURL库的常见用法代码示例
May 06 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
May 16 PHP
PHPStrom 新建FTP项目以及在线操作教程
Oct 16 PHP
PHP实现的超长文本分页显示功能示例
Jun 04 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
Aug 15 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 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下载xls文件(自己动手写的)
2014/04/18 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
基于JQuery+PHP编写砸金蛋中奖程序
2015/09/08 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
PHP获取访问设备信息的方法示例
2019/02/20 PHP
PHP创建XML接口示例
2019/07/04 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
JavaScript 指导方针
2007/04/05 Javascript
offsetParent 算法分析
2010/04/05 Javascript
jquery.idTabs 选项卡使用示例代码
2014/09/03 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
认识jQuery的Promise的具体使用方法
2017/10/10 jQuery
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
[jQuery] 事件和动画详解
2019/03/05 jQuery
vue form表单post请求结合Servlet实现文件上传功能
2021/01/22 Vue.js
Python中map和列表推导效率比较实例分析
2015/06/17 Python
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
python SocketServer源码深入解读
2019/09/17 Python
python实现将一维列表转换为多维列表(numpy+reshape)
2019/11/29 Python
Python如何脚本过滤文件中的注释
2020/05/27 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
销售总监岗位职责
2014/01/04 职场文书
前台文员我鉴定
2014/01/12 职场文书
管理专员自荐信
2014/01/26 职场文书
市优秀教师事迹材料
2014/02/05 职场文书
环保倡议书400字
2014/05/15 职场文书
医学专业自荐信
2014/06/14 职场文书
幼儿园爱国卫生月活动总结
2014/06/30 职场文书
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android
Java基于字符界面的简易收银台
2021/06/26 Java/Android