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 14 PHP
php str_pad 函数用法简介
Jul 11 PHP
PHP的SQL注入实现(测试代码安全不错)
Feb 27 PHP
php whois查询API制作方法
Jun 23 PHP
php中取得文件的后缀名?
Feb 20 PHP
php实现cc攻击防御和防止快速刷新页面示例
Feb 13 PHP
ThinkPHP 404页面的设置方法
Jan 14 PHP
WordPress中is_singular()函数简介
Feb 05 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 PHP
PHP+MySQL存储数据常见中文乱码问题小结
Jun 13 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
Aug 17 PHP
利用PHP绘图函数实现简单验证码功能的方法
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 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
使用XHGui来测试PHP性能的教程
2015/07/03 PHP
thinkPHP引入类的方法详解
2016/12/08 PHP
javascript 添加和移除函数的通用方法
2009/10/20 Javascript
JavaScript格式化数字的函数代码
2010/11/30 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
2013/07/09 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
js实现拉幕效果的广告代码
2015/09/02 Javascript
JavaScript的removeChild()函数用法详解
2015/12/27 Javascript
JS实现简单的右下角弹出提示窗口完整实例
2016/06/21 Javascript
JavaScript模块详解
2017/12/18 Javascript
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
使用Vue做一个简单的todo应用的三种方式的示例代码
2018/10/20 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
2019/08/01 Javascript
Vue实现星级评价效果实例详解
2019/12/30 Javascript
Python实现批量检测HTTP服务的状态
2016/10/27 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
python OpenCV学习笔记之绘制直方图的方法
2018/02/08 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
2020/08/03 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
2021/01/29 Python
购买限量版收藏品、珠宝和礼品:Bradford Exchange
2016/09/23 全球购物
质量保证书范本
2014/04/29 职场文书
贷款担保申请书
2014/05/20 职场文书
自我管理的活动方案
2014/08/25 职场文书
建国大业电影观后感
2015/06/01 职场文书
结婚主持人致辞
2015/07/28 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
私人贷款担保书该怎么写呢?
2019/07/02 职场文书