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 相关文章推荐
福利彩票幸运号码自动生成器
Oct 09 PHP
说明的比较细的php 正则学习实例
Jul 30 PHP
PHP判断变量是否为0的方法
Feb 08 PHP
Codeigniter实现处理用户登录验证后的URL跳转
Jun 12 PHP
ThinkPHP多语言支持与多模板支持概述
Aug 22 PHP
PHP实现将textarea的值根据回车换行拆分至数组
Jun 10 PHP
PHP异常处理Exception类
Dec 11 PHP
PHP内核探索之解释器的执行过程
Dec 22 PHP
PHP分享图片的生成方法
Apr 25 PHP
yii2实现Ueditor百度编辑器的示例代码
Nov 02 PHP
PHP单元测试配置与使用方法详解
Dec 27 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
Aug 24 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 中的str_replace 函数总结
2007/04/27 PHP
PHP简单系统查询模块代码打包下载
2008/06/07 PHP
用PHP实现Ftp用户的在线管理
2012/02/16 PHP
PHP中获取文件扩展名的N种方法小结
2012/02/27 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
2013/02/16 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
php构造函数实例讲解
2013/11/13 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
jquery动画2.元素坐标动画效果(创建一个图片走廊)
2012/08/24 Javascript
js substr支持中文截取函数代码(中文是双字节)
2013/04/17 Javascript
jquery中show()、hide()和toggle()用法实例
2015/01/15 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
纯javascript移动优先的幻灯片效果
2015/11/02 Javascript
Angular中$cacheFactory的作用和用法实例详解
2016/08/19 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
weex里Vuex state使用storage持久化详解
2017/09/09 Javascript
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
使用Vue做一个简单的todo应用的三种方式的示例代码
2018/10/20 Javascript
vue实现点击追加选中样式效果
2019/11/01 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
2020/02/11 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
Java分治归并排序算法实例详解
2017/12/12 Python
Python多进程并发与多线程并发编程实例总结
2018/02/08 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
python爬虫智能翻页批量下载文件的实例详解
2021/02/02 Python
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
2019年Java面试必问之经典试题
2012/09/12 面试题
校园新闻广播稿
2014/01/10 职场文书
逃课打麻将检讨书
2014/10/05 职场文书
爱岗敬业先进典型事迹材料(2016推荐版)
2016/02/26 职场文书
Python 中面向接口编程
2022/05/20 Python