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 相关文章推荐
discuz论坛 用户登录 后台程序代码
Nov 27 PHP
PHP生成网页快照 不用COM不用扩展.
Feb 11 PHP
PHP 反向排序和随机排序代码
Jun 30 PHP
关于Zend Studio 配色方案插件的介绍
Jun 24 PHP
yii框架配置默认controller和action示例
Apr 30 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
Jun 30 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
Apr 01 PHP
PHP微信开发之二维码生成类
Jun 26 PHP
php实现复制移动文件的方法
Jul 29 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
laravel多条件查询方法(and,or嵌套查询)
Oct 09 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
Mar 09 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公用函数列表[正则]
2007/02/22 PHP
php正则表达式(regar expression)
2011/09/10 PHP
提高php运行速度的一些小技巧分享
2012/07/03 PHP
php获取文章上一页与下一页的方法
2014/12/01 PHP
Symfony查询方法实例小结
2017/06/28 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
用函数式编程技术编写优美的 JavaScript
2006/11/25 Javascript
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
JavaScript中实现无缝滚动、分享到侧边栏实例代码
2016/04/06 Javascript
jQuery实现导航滚动到指定内容效果完整实例【附demo源码下载】
2016/09/20 Javascript
jQuery的事件预绑定
2016/12/05 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
2017/04/25 Javascript
详解微信小程序 相对定位和绝对定位
2017/05/11 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
jquery请求servlet实现ajax异步请求的示例
2017/06/03 jQuery
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
vue 点击按钮实现动态挂载子组件的方法
2018/09/07 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
2018/12/28 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
LayUI数据接口返回实体封装的例子
2019/09/12 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
2020/09/24 Javascript
Python 中开发pattern的string模板(template) 实例详解
2017/04/01 Python
Python连接phoenix的方法示例
2017/09/29 Python
python 读取摄像头数据并保存的实例
2018/08/03 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
python+numpy按行求一个二维数组的最大值方法
2019/07/09 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
你会写请假条吗?
2019/06/26 职场文书