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日历[测试通过]
Mar 27 PHP
php下通过伪造http头破解防盗链的代码
Jul 03 PHP
PHP 验证码不显示只有一个小红叉的解决方法
Sep 30 PHP
简单的php缓存类分享     php缓存机制
Jan 22 PHP
PHP字符串的递增和递减示例介绍
Feb 11 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
Apr 14 PHP
PHP验证码生成原理和实现
Jan 24 PHP
再谈PHP中单双引号的区别详解
Jun 12 PHP
php-msf源码详解
Dec 25 PHP
实例讲解PHP验证邮箱是否合格
Jan 28 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
Jun 19 PHP
php去除deprecated的实例方法
Nov 17 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
php阻止页面后退的方法分享
2014/02/17 PHP
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
PHP网站自动化配置的实现方法(必看)
2017/05/27 PHP
PHP接入微信H5支付的方法示例
2019/10/28 PHP
JS 统计时间
2021/03/09 Javascript
JSON 学习之完全手册 图文
2007/05/29 Javascript
JavaScript效率调优经验
2009/06/04 Javascript
jQuery 学习6 操纵元素显示效果的函数
2010/02/07 Javascript
WEB高性能开发之疯狂的HTML压缩
2010/06/19 Javascript
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
用jquery存取照片的具体实现方法
2013/06/30 Javascript
JS字符串拼接在ie中都报错的解决方法
2014/03/27 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
Javascript添加监听与删除监听用法详解
2014/12/19 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
2015/03/13 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
浅析Node.js 中 Stream API 的使用
2015/10/23 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
2016/02/22 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
JSON与XML的区别对比及案例应用
2016/11/11 Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
2019/11/19 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
Vue简单实现原理详解
2020/05/07 Javascript
ES6中的Javascript解构的实现
2020/10/30 Javascript
[04:49]2014DOTA2国际邀请赛 Newbee顺利挺进总决赛 ImbaTV独家专访
2014/07/19 DOTA
python调用cmd命令行制作刷博器
2014/01/13 Python
Python中的with...as用法介绍
2015/05/28 Python
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
python语音识别实践之百度语音API
2018/08/30 Python
eDreams德国:南欧领先的在线旅游公司
2020/12/07 全球购物
玩手机检讨书1000字
2014/10/20 职场文书
二手车交易协议书标准版
2014/11/16 职场文书
2015年企业员工工作总结范文
2015/05/21 职场文书