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操作流程
Oct 09 PHP
php创建多级目录代码
Jun 05 PHP
坏狼的PHP学习教程之第1天
Jun 15 PHP
php生成随机密码的几种方法
Jan 17 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
Jun 14 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
Apr 20 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
Aug 25 PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 PHP
详解Yaf框架PHPUnit集成测试方法
Dec 27 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
Mar 01 PHP
PHP implode()函数用法讲解
Mar 08 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
Oct 16 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
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
使用PHP求两个文件的相对路径
2013/06/20 PHP
PHP制作百度词典查词采集器
2015/01/29 PHP
php实现银联商务公众号+服务窗支付的示例代码
2019/10/12 PHP
密码框显示提示文字jquery示例
2013/08/29 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
2016/05/29 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
JavaScript中 this 指向问题深度解析
2017/02/21 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
ES6正则表达式扩展笔记
2017/07/25 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
js实现微信聊天界面
2020/08/09 Javascript
js实现简单的无缝轮播效果
2020/09/05 Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
2020/09/08 Javascript
ant design的table组件实现全选功能以及自定义分页
2020/11/17 Javascript
[07:27]DOTA2卡尔工作室 英雄介绍水晶室女篇
2013/06/21 DOTA
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
Python读取mp3中ID3信息的方法
2015/03/05 Python
python创建和删除目录的方法
2015/04/29 Python
Python pandas常用函数详解
2018/02/07 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
2019/08/13 Python
Django choices下拉列表绑定实例
2020/03/13 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
2021/01/01 Python
印度领先的在线时尚商店:Koovs
2016/08/28 全球购物
海外淘书首选:AbeBooks
2017/07/31 全球购物
Android interview questions
2016/12/25 面试题
linux下进程间通信的方式
2013/01/23 面试题
银行会计财务工作个人的自我评价
2013/10/29 职场文书
银行实习生的自我评价
2014/01/13 职场文书
机关工会开展学习雷锋活动总结
2014/03/01 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
《海底世界》教学反思
2014/04/16 职场文书
员工2014年度工作总结
2014/12/09 职场文书
Go并发4种方法简明讲解
2022/04/06 Golang