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中批量删除Mysql中相同前缀的数据表的代码
Jul 01 PHP
gd库图片下载类实现下载网页所有图片的php代码
Aug 20 PHP
解析PHP工厂模式的好处
Jun 18 PHP
php实现的简单美国商品税计算函数
Jul 13 PHP
php给图片加文字水印
Jul 31 PHP
Codeigniter中集成smarty和adodb的方法
Mar 04 PHP
PHP实现的方程求解示例分析
Nov 11 PHP
yii2实现分页,带搜索的分页功能示例
Jan 07 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
Jul 10 PHP
搭建自己的PHP MVC框架详解
Aug 16 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
php从数据库中获取数据用ajax传送到前台的方法
Aug 20 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 错误之引号中使用变量
2009/05/04 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
2011/04/20 PHP
PDO的安全处理与事物处理方法
2016/10/31 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
Laravel框架实现多数据库连接操作详解
2019/07/12 PHP
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
javascript计算星座属相(十二生肖属相)示例代码
2014/01/09 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
AngularJS入门教程之数据绑定用法示例
2016/11/01 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
2017/04/13 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
vue2.0 常用的 UI 库实例讲解
2017/12/12 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
2019/06/10 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
Django Rest framework解析器和渲染器详解
2019/07/25 Python
Python Web框架之Django框架cookie和session用法分析
2019/08/16 Python
Python计算两个矩形重合面积代码实例
2019/09/16 Python
如何给Python代码进行加密
2020/01/10 Python
Python Mock模块原理及使用方法详解
2020/07/07 Python
Django自带用户认证系统使用方法解析
2020/11/12 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
借助HTML5 Canvas API制作一个简单的猜字游戏
2016/03/25 HTML / CSS
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
大学军训通讯稿
2014/01/13 职场文书
2019新员工试用期转正工作总结范文
2019/08/21 职场文书
python 实现图与图之间的间距调整subplots_adjust
2021/05/21 Python
elementui的el-popover修改样式不生效的解决
2021/06/30 Javascript
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers