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 相关文章推荐
解决phpmyadmin中文乱码问题。。。
Jan 18 PHP
php中获取指定IP的物理地址的代码(正则表达式)
Jun 23 PHP
利用curl抓取远程页面内容的示例代码
Jul 23 PHP
destoon实现VIP排名一直在前面排序的方法
Aug 21 PHP
开启PHP Static 关键字之旅模式
Nov 13 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
Mar 21 PHP
功能强大的PHP发邮件类
Aug 29 PHP
PHP PDO操作MySQL基础教程
Jun 05 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
Sep 13 PHP
php识别翻转iphone拍摄的颠倒图片
May 17 PHP
php session_decode函数用法讲解
May 26 PHP
Laravel框架中集成MongoDB和使用详解
Oct 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+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
2015/05/11 PHP
jQuery.deferred对象使用详解
2016/03/18 Javascript
Javascript中arguments对象的详解与使用方法
2016/10/04 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
2016/12/28 Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
2017/01/10 Javascript
JS百度地图搜索悬浮窗功能
2017/01/12 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
webuploader实现上传图片到服务器功能
2018/08/16 Javascript
说说如何在Vue.js中实现数字输入组件的方法
2019/01/08 Javascript
JavaScript类型相关的常用操作总结
2019/02/14 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
2019/08/26 Javascript
浅谈Vue.set实际上是什么
2019/10/17 Javascript
js+css实现全屏侧边栏
2020/06/16 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
[57:28]2018DOTA2亚洲邀请赛 4.6 淘汰赛 TNC vs Liquid 第一场
2018/04/10 DOTA
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
wxPython之解决闪烁的问题
2018/01/15 Python
Python 中导入csv数据的三种方法
2018/11/01 Python
解决Python设置函数调用超时,进程卡住的问题
2019/08/08 Python
python [:3] 实现提取数组中的数
2019/11/27 Python
解决Python spyder显示不全df列和行的问题
2020/04/20 Python
H5页面适配iPhoneX(就是那么简单)
2019/12/02 HTML / CSS
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
罗技美国官网:Logitech美国
2020/01/22 全球购物
设计毕业生简历中的自我评价
2013/10/01 职场文书
毕业生优秀推荐信
2013/11/26 职场文书
工作失职检讨书范文
2014/01/16 职场文书
会计求职信
2014/05/29 职场文书
建筑工程造价专业自荐信
2014/07/08 职场文书
2019年图书室自查报告范本
2019/10/12 职场文书
python学习之panda数据分析核心支持库
2021/05/07 Python