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 相关文章推荐
一个程序下载的管理程序(一)
Oct 09 PHP
php disk_free_space 返回目录可用空间
May 10 PHP
php定时计划任务的实现方法详解
Jun 06 PHP
php读取csv实现csv文件下载功能
Dec 18 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
Aug 11 PHP
windows7下php开发环境搭建图文教程
Jan 06 PHP
启用Csrf后POST数据时出现的400错误
Jul 05 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
Jan 05 PHP
PHP验证码生成原理和实现
Jan 24 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 PHP
PHP实现通过文本文件统计页面访问量功能示例
Feb 13 PHP
is_file和file_exists效率比较
Mar 14 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 str_replace的替换漏洞
2008/03/15 PHP
php中去除所有js,html,css代码
2010/10/12 PHP
PHP采集利器 Snoopy 试用心得
2011/07/03 PHP
php获取服务器信息的实现代码
2013/02/04 PHP
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
php生成txt文件标题及内容的方法
2014/01/16 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
2014/04/21 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0
2008/03/22 Javascript
SWFObject 2.1以上版本语法介绍
2010/07/10 Javascript
浅析js中取绝对值的2种方法
2013/07/09 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
使用BootStrapValidator完成前端输入验证
2016/09/28 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
2018/04/28 Javascript
在vue中使用setInterval的方法示例
2019/04/16 Javascript
Vue 图片压缩并上传至服务器功能
2020/01/15 Javascript
nodejs如何在package.json中设置多条启动命令
2020/03/16 NodeJs
js实现点击上传图片并设为模糊背景
2020/08/02 Javascript
书单|人生苦短,你还不用python!
2017/12/29 Python
Django Admin实现三级联动的示例代码(省市区)
2018/06/22 Python
关于Python3 lambda函数的深入浅出
2019/11/27 Python
利用canvas实现图片压缩的示例代码
2018/07/17 HTML / CSS
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
解释一下抽象方法和抽象类
2016/08/27 面试题
JPA的特点
2014/10/25 面试题
卫校毕业生自我鉴定
2013/10/31 职场文书
继电保护工岗位职责
2014/01/05 职场文书
善意的谎言事例
2014/02/15 职场文书
学校招生宣传广告词
2014/03/19 职场文书
市场营销毕业生自荐信范文
2014/04/01 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
公务员个人年终总结
2015/02/12 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
八年级作文之感恩
2019/11/22 职场文书
CDPR谈《巫师》新作用虚幻5原因 称不会为Epic独占
2022/04/06 其他游戏