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 相关文章推荐
MYSQL 小技巧 -- LAST_INSERT_ID
Nov 24 PHP
PHP检测移动设备类mobile detection使用实例
Apr 14 PHP
php实现与erlang的二进制通讯实例解析
Jul 23 PHP
从零开始学YII2框架(六)高级应用程序模板
Aug 20 PHP
深入解析PHP中foreach语句控制数组循环的用法
Nov 30 PHP
php利用fsockopen GET/POST提交表单及上传文件
May 22 PHP
PHP框架laravel的.env文件配置教程
Jun 07 PHP
详解PHP发送邮件知识点
May 06 PHP
PHP模型Model类封装数据库操作示例
Mar 14 PHP
Yii框架响应组件用法实例分析
Sep 04 PHP
php把文件设置为插件的技巧方法
Feb 03 PHP
PHP终止脚本运行三种实现方法详解
Sep 01 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图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
2010/12/02 PHP
php 判断数组是几维数组
2013/03/20 PHP
PHP函数之日期时间函数date()使用详解
2013/09/09 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
键盘控制事件应用教程大全
2006/11/24 Javascript
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
Jquery实现上下移动和排序代码
2016/10/17 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
Vue中正确使用jQuery的方法
2017/10/30 jQuery
详解webpack之scss和postcss-loader的配置
2018/01/09 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
详解React之key的使用和实践
2018/09/29 Javascript
JS集合set类的实现与使用方法示例
2019/02/01 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
ES6学习教程之Promise用法详解
2020/11/22 Javascript
Linux中Python 环境软件包安装步骤
2016/03/31 Python
django之常用命令详解
2016/06/30 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
详解Python循环作用域与闭包
2019/03/21 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
HTML5 在canvas中绘制文本附效果图
2014/06/23 HTML / CSS
阿迪达斯新加坡官方网站:adidas新加坡
2019/12/06 全球购物
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
新闻专业个人自我评价
2013/09/21 职场文书
网上开店必备创业计划书
2014/01/26 职场文书
管理工程专业求职信
2014/08/10 职场文书
2014年消防工作总结
2014/11/21 职场文书
2015年学校保卫部工作总结
2015/05/11 职场文书
简单的辞职信模板
2015/05/12 职场文书
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis