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 简明安装教程 推荐
Mar 07 PHP
PHP提取数据库内容中的图片地址并循环输出
Mar 21 PHP
php中使用cookie来保存用户登录信息的实现代码
Mar 08 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
May 23 PHP
如何使用PHP实现javascript的escape和unescape函数
Jun 29 PHP
php中try catch捕获异常实例详解
Nov 21 PHP
php防止sql注入简单分析
Mar 18 PHP
PHP简单生成缩略图相册的方法
Jul 29 PHP
Yii2实现log输出到file及database的方法
Nov 12 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
Jul 04 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
Yii 框架入口脚本示例分析
May 19 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)
2013/06/21 PHP
微信公众平台之快递查询功能用法实例
2015/04/14 PHP
php+mysql实现无限级分类
2015/11/11 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
2012/02/03 Javascript
根据json字符串生成Html的一种方式
2013/01/09 Javascript
js 获取class的元素的方法 以及创建方法getElementsByClassName
2013/03/11 Javascript
jquery 追加tr和删除tr示例代码
2013/09/12 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
JS控制文本域只读或可写属性的方法
2016/06/24 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
javascript 解决浏览器不支持的问题
2016/09/24 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
如何安装多版本python python2和python3共存以及pip共存
2018/09/18 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
Python中一个for循环循环多个变量的示例
2019/07/16 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
2021/01/15 Python
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
网络安全方面的面试题
2016/01/07 面试题
J2EE包括哪些技术
2016/11/25 面试题
触电现场处置方案
2014/05/14 职场文书
幼儿园教师节演讲稿
2014/09/03 职场文书
2014年教师节红领巾广播稿
2014/09/10 职场文书
2014年科技工作总结
2014/11/26 职场文书
文言文辞职信
2015/02/28 职场文书
2015年派出所工作总结
2015/04/24 职场文书
解决Maven项目中 Invalid bound statement 无效的绑定问题
2021/06/15 Java/Android
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技