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 相关文章推荐
目录,文件操作详谈―PHP
Nov 25 PHP
WINXP下apache+php4+mysql
Nov 25 PHP
php二分法在IP地址查询中的应用
Aug 12 PHP
PHP采集相关教程之一 CURL函数库
Feb 15 PHP
PHP IN_ARRAY 函数使用注意事项
Jul 24 PHP
PHP中文件缓存转内存缓存的方法
Dec 06 PHP
php替换超长文本中的特殊字符的函数代码
May 22 PHP
linux使用crontab实现PHP执行计划定时任务
May 10 PHP
ci检测是ajax还是页面post提交数据的方法
Nov 10 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
May 13 PHP
php获取微信基础接口凭证Access_token
Aug 23 PHP
php 的多进程操作实践案例分析
Feb 28 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
全国FM电台频率大全 - 25 云南省
2020/03/11 无线电
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
javascript new后的constructor属性
2010/08/05 Javascript
javascript改变position值实现菜单滚动至顶部后固定
2013/01/18 Javascript
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
用js正确判断用户名cookie是否存在的方法
2014/01/28 Javascript
js创建一个input数组并绑定click事件的方法
2014/06/12 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
[01:22:42]2014 DOTA2华西杯精英邀请赛 5 24 DK VS LGD
2014/05/26 DOTA
Python实现网站文件的全备份和差异备份
2014/11/30 Python
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
Python实现决策树并且使用Graphviz可视化的例子
2019/08/09 Python
python将字典列表导出为Excel文件的方法
2019/09/02 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
Tensorflow获取张量Tensor的具体维数实例
2020/01/19 Python
Python字符串hashlib加密模块使用案例
2020/03/10 Python
Python虚拟环境的创建和使用详解
2020/09/07 Python
python中四舍五入的正确打开方式
2021/01/18 Python
Expedia瑞典官网:预订度假屋、酒店、汽车租赁、机票等
2021/01/23 全球购物
介绍一下Ruby中的对象,属性和方法
2012/07/11 面试题
电大物流学生的自我评价
2013/10/25 职场文书
初中体育教学反思
2014/01/14 职场文书
职业生涯规划书结束语
2014/04/15 职场文书
目标责任书范本
2014/04/16 职场文书
捐书活动总结
2014/05/04 职场文书
团员年度个人总结
2015/02/26 职场文书