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 相关文章推荐
使用VisualStudio开发php的图文设置方法
Aug 21 PHP
PHP获取url的函数代码
Aug 02 PHP
PHP警告Cannot use a scalar value as an array的解决方法
Jan 11 PHP
JS中encodeURIComponent函数用php解码的代码
Mar 01 PHP
PHP使用CURL获取302跳转后的地址实例
May 04 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
Nov 11 PHP
php自动识别文字编码并转换为目标编码的方法
Aug 08 PHP
php正则表达式学习笔记
Nov 13 PHP
CodeIgniter 完美解决URL含有中文字符串
May 13 PHP
PHP创建多级目录的两种方法
Oct 28 PHP
Laravel框架自定义公共函数的引入操作示例
Apr 16 PHP
Laravel基础-关于引入公共文件的两种方式
Oct 18 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循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
php绘制一个扇形的方法
2015/01/24 PHP
如何使用纯PHP实现定时器任务(Timer)
2015/07/31 PHP
PHP7匿名类用法分析
2016/09/26 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
JS 用6N±1法求素数 实例教程
2009/10/20 Javascript
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
用Python实现协同过滤的教程
2015/04/08 Python
Python中用PIL库批量给图片加上序号的教程
2015/05/06 Python
详解python的几种标准输出重定向方式
2016/08/15 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
Python实现将Excel转换成为image的方法
2018/10/23 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
python的sorted用法详解
2019/06/25 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
杭州时比特电子有限公司SQL
2013/08/22 面试题
中专毕业生求职简历的自我评价
2013/10/21 职场文书
保险专业大专生求职信
2013/10/26 职场文书
消防器材管理制度
2014/01/28 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
庆祝教师节新闻稿
2015/07/17 职场文书
2016思想纪律作风整顿心得体会
2016/01/23 职场文书