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类 可以参考学习熟悉下
Jun 21 PHP
PHP 批量删除数据的方法分析
Oct 30 PHP
php的ajax框架xajax入门与试用介绍
Dec 19 PHP
PHP 异步执行方法,模拟多线程的应用分析
Jun 03 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
Jun 20 PHP
两个php日期控制类实例
Dec 09 PHP
Symfony2框架创建项目与模板设置实例详解
Mar 17 PHP
Python中使用django form表单验证的方法
Jan 16 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
May 04 PHP
thinkphp5.1框架容器与依赖注入实例分析
Jul 23 PHP
Laravel 之url参数,获取路由参数的例子
Oct 21 PHP
PHP中类与对象功能、用法实例解读
Mar 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
如何去掉文章里的 html 语法
2006/10/09 PHP
使用Appcan客户端自动更新PHP版本号(全)
2015/07/31 PHP
smarty的section嵌套循环用法示例
2016/05/28 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
laravel开发环境homestead搭建过程详解
2020/07/03 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
javascript 动态修改css样式方法汇总(四种方法)
2015/08/27 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
2017/06/30 Javascript
基于Vue中点击组件外关闭组件的实现方法
2018/03/06 Javascript
create-react-app安装出错问题解决方法
2018/09/04 Javascript
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
2019/04/19 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
[01:20]辉夜杯背景故事宣传片《辉夜传说》
2015/12/25 DOTA
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
[04:19]DOTA2完美大师赛第四天精彩集锦
2017/11/26 DOTA
python正则分组的应用
2013/11/10 Python
python使用xauth方式登录饭否网然后发消息
2014/04/11 Python
进一步理解Python中的函数编程
2015/04/13 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
2018/01/05 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
公益广告语集锦
2014/03/13 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang
SQL Server Agent 服务无法启动
2022/04/20 SQL Server
索尼ICF-36收音机评测
2022/04/30 无线电
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers
JS前端使用Canvas快速实现手势解锁特效
2022/09/23 Javascript