yii实现级联下拉菜单的方法


Posted in PHP onJuly 31, 2014

本文详细讲述了yii实现级联下拉菜单的方法,具体步骤如下:

1.模版中加入如下代码:

<?php
 echo $form->dropDownList($model, 'src_type_id', OrderSrc::options(), array(
 <span style="white-space:pre"> </span>'id' => 'task-order-src-id',
 ));
 echo $form->dropDownList($model, 'src_shop_id', array(''=>'全部'), array(
 <span style="white-space:pre"> </span>'id' => 'task-shop-id',
 ))
?>

在这段代码中,OrderSrc_options() 这个是先读取一个下拉菜单。调用OrderScr model中的options方法。内容如下

public static function options($hasShop = true) {
 $model = new self();
 if($hasShop) $model->hasShop();
 $models = $model->findAll();
 $array = array(''=>'全部');
 foreach($models as $model) {
 $array[$model->src_id] = $model->src_name;
 }
 return $array;
}

2.然后在模版页面中增加JS代码,实现当第一个下拉菜单变化时给第二个下拉菜单进行内容赋值。

<script type='text/javascript'>
$().ready(function(e) {
 $('#task-order-src-id').change(function(e) {
 refreshShops();
 });
 refreshShops();
 function refreshShops() {
 $.get('<?php echo $this->createUrl('getShops')?>', {
  'srcId': $('#task-order-src-id').val()
 }, function(html_content) {
  $('#task-shop-id')
  .html(html_content)
  .find('option[value=<?php echo $model->src_shop_id?>]')
   .attr('selected', 'selected');
 });
 }
});
</script>

在这段JS代码中,实现调取一个程序获取第二个下拉菜单的值(调用Controller中的actionGetShops方法),任何追加到第二个下拉菜单中。

Controller中的actionGetShops方法如下:

public function actionGetShops() {
 $srcId = $_GET['srcId'];
 $array = ThirdpartInterfaceConfig::options($srcId);
 $htmlContent = "<option value=''>全部</options>";
 foreach($array as $k=>$v) {
 $htmlContent .= "<option value='{$k}'>{$v}</option>";
 }
 echo $htmlContent;
}
PHP 相关文章推荐
弄了个检测传输的参数是否为数字的Function
Dec 06 PHP
php下用cookie统计用户访问网页次数的代码
May 09 PHP
Zend的Registry机制的使用说明
May 02 PHP
解析php addslashes()与addclashes()函数的区别和比较
Jun 24 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
Jun 25 PHP
php中filter_input函数用法分析
Nov 15 PHP
PHP中如何使用session实现保存用户登录信息
Oct 20 PHP
thinkphp3.2实现上传图片的控制器方法
Apr 28 PHP
Yii2创建控制器(createController)方法详解
Jul 23 PHP
PHP Callable强制指定回调类型的方法
Aug 30 PHP
php基于curl实现随机ip地址抓取内容的方法
Oct 11 PHP
PHP设计模式之命令模式示例详解
Dec 20 PHP
YII中assets的使用示例
Jul 31 #PHP
基于PHP的简单采集数据入库程序【续篇】
Jul 30 #PHP
基于PHP的简单采集数据入库程序
Jul 30 #PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 #PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
Jul 30 #PHP
PHP伪静态Rewrite设置之APACHE篇
Jul 30 #PHP
PHP return语句的另一个作用
Jul 30 #PHP
You might like
短波收音机简介
2021/03/01 无线电
dede3.1分页文字采集过滤规则详说(图文教程)续二
2007/04/03 PHP
PHP中通过加号合并数组的一个简单方法分享
2011/01/27 PHP
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
Laravel框架表单验证详解
2014/09/04 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
PHP+MySQL实现消息队列的方法分析
2018/05/09 PHP
Thinkphp5.0框架视图view的循环标签用法示例
2019/10/12 PHP
JQuery伸缩导航练习示例
2013/11/13 Javascript
使用jquery解析XML的方法
2014/09/05 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
jQuery实现网页顶部固定导航效果代码
2015/12/24 Javascript
AngularJS ng-app 指令实例详解
2016/07/30 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
JavaScript实现弹出广告功能
2017/03/30 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
代码分析vue中如何配置less
2018/09/28 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
如何在 ant 的table中实现图片的渲染操作
2020/10/28 Javascript
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
pip安装Python库时遇到的问题及解决方法
2017/11/23 Python
Python使用matplotlib绘制余弦的散点图示例
2018/03/14 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
基于python指定包的安装路径方法
2018/10/27 Python
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
2014员工聘用协议书(最新版)
2014/11/24 职场文书
2014年优秀党员材料
2014/12/18 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
举起手来观后感
2015/06/09 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang
django 认证类配置实现
2021/11/11 Python
python机器学习实现oneR算法(以鸢尾data为例)
2022/03/03 Python
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL