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 adodb操作mysql数据库
Mar 19 PHP
php中批量删除Mysql中相同前缀的数据表的代码
Jul 01 PHP
通过curl模拟post和get方式提交的表单类
Apr 23 PHP
php实现zip文件解压操作
Nov 03 PHP
PHP邮箱验证示例教程
Jun 01 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
Jul 01 PHP
总结PHP中数值计算的注意事项
Aug 14 PHP
PHP简单检测网址是否能够正常打开的方法
Sep 04 PHP
Yii2中多表关联查询hasOne hasMany的方法
Feb 15 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 PHP
thinkphp框架page类与bootstrap分页(美化)
Jun 25 PHP
PHP面向对象多态性实现方法简单示例
Sep 27 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 去除html标记--strip_tags与htmlspecialchars的区别详解
2013/06/26 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
2019/12/13 PHP
javascript 对象比较实现代码
2009/04/27 Javascript
javascript与CSS复习(二)
2010/06/29 Javascript
JS自动适应的图片弹窗实例
2013/06/29 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
extjs每个组件要设置唯一的ID否则会出错
2014/06/15 Javascript
用js通过url传参把数据从一个页面传到另一个页面
2014/09/01 Javascript
node.js中的http.createClient方法使用说明
2014/12/15 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
2015/08/28 Javascript
10个很棒的jQuery代码片段
2015/09/24 Javascript
详解JavaScript编程中正则表达式的使用
2015/10/25 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
2016/04/15 Javascript
深入理解jQuery中的事件冒泡
2016/05/24 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
微信小程序 商城开发(ecshop )简单实例
2017/04/07 Javascript
小程序表单认证布局及验证详解
2020/06/19 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
[01:16:50]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第一场 3月7日
2021/03/11 DOTA
python实现爬虫下载漫画示例
2014/02/16 Python
Django框架中处理URLconf中特定的URL的方法
2015/07/20 Python
Python+django实现简单的文件上传
2016/08/17 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
2018/10/29 Python
使用python实现滑动验证码功能
2019/08/05 Python
Python语言异常处理测试过程解析
2020/01/08 Python
详解python中groupby函数通俗易懂
2020/05/14 Python
python如何爬取网页中的文字
2020/07/28 Python
品牌转让协议书
2014/08/20 职场文书
中职招生先进个人材料
2014/08/31 职场文书
担保书范本
2015/01/20 职场文书
2016年小学党支部创先争优活动总结
2016/04/05 职场文书
python 单机五子棋对战游戏
2022/04/28 Python