下拉列表多级联动dropDownList示例代码


Posted in PHP onJune 27, 2013

视图:
cdnauto/views/config/index.php

echo CHtml::dropDownList('node', '', CHtml::listData(Node::model()->findAll(),'name','name'),array('empty'=>'--请选择节点--', 
'id' => 'node', 
'ajax'=>array( 
'type'=>'POST', 
'url'=>Yii::app()->createUrl('cdnauto/config/getNodeServersByNodeName'), 
'update'=>'#servers', 
'data'=>array('node_name'=>'js:$("#node").val()'), 
) 
) 
); 
echo "        "; 
echo CHtml::dropDownList('servers', '', array('--请选择服务器--'));

控制器:
cdnauto/controllers/ConfigController.php
public function actionGetNodeServersByNodeName(){ 
// if(!Yii::app()->request->isAjaxRequest) 
// throw new CHttpException(404); 
$node_name = $_POST['node_name']; 
$nodeid = Node::model()->getNodeId($_POST['node_name']); //通过节点名称获取该节点ID 
$server = GossServer::model()->getServerByNodeid($nodeid); //通过节点ID获取服务器信息 
//$server 为array类型,形如 $server = array(array('name'=>'name1'),array('name'=>'name2'));所以需要两次foreach 
if(isset($server)){ 
foreach ($server as $k=>$v){ 
foreach($v as $kk => $vv){ 
echo CHtml::tag('option', array('value'=>$kk), CHtml::encode($vv), true); 
} 
} 
}else{ 
echo CHtml::tag('option', array('value'=>''), 'servers', true); 
} 
}

模型:
GossServer.php
/** 
* 通过节点ID获取该节点下所有的服务器名称 
* @author ysdaniel 
*/ 
public static function getServerByNodeid($nodeid) 
{ 
$sql = "SELECT name FROM OSS_Server WHERE nodeid = '{$nodeid}' "; 
///$sql = "SELECT name,nodeid FROM OSS_Server WHERE nodeid = '{$nodeid}' "; //both ok 
$cmd = Yii::app()->db->createCommand($sql); 
$ret = $cmd->queryAll(); 
if (!$ret){ 
throw new Exception("找不到这个节点对应的服务器"); 
} 
return $ret; 
}

Node.php
/** 
* 通过nodename获取nodeid名 
* @author 
*/ 
public static function getNodeId($name) 
{ 
$sql = "SELECT id FROM OSS_Node WHERE name = '{$name}'"; 
$cmd = Yii::app()->db->createCommand($sql); 
$ret = $cmd->queryAll(); 
if (!$ret){ 
return null; 
//throw new Exception("找不到Node{$name}"); 
} 
return $ret[0]['id']; 
}

其它:
数据表结构
效果:
没有选择节点前:
下拉列表多级联动dropDownList示例代码 
细节有空再补上了。
PHP 相关文章推荐
PHP4实际应用经验篇(7)
Oct 09 PHP
PHP中date()日期函数有关参数整理
Jul 19 PHP
codeigniter自带数据库类使用方法说明
Mar 25 PHP
自己写的php curl库实现整站克隆功能
Feb 12 PHP
php+ajax实现无刷新动态加载数据技术
Apr 28 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
Jun 12 PHP
php preg_match的匹配不同国家语言实例
Dec 29 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
Oct 19 PHP
关于Curl在Swoole协程中的解决方案详析
Sep 12 PHP
php ZipArchive实现多文件打包下载实例
Oct 31 PHP
PHP实现创建以太坊钱包转账等功能
Apr 21 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
Jun 27 #PHP
PHP数组排序函数合集 以及它们之间的联系分析
Jun 27 #PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
Jun 27 #PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
Jun 27 #PHP
浅析php中抽象类和接口的概念以及区别
Jun 27 #PHP
领悟php接口中interface存在的意义
Jun 27 #PHP
CURL状态码列表(详细)
Jun 27 #PHP
You might like
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
destoon调用自定义模板及样式的公告栏
2014/06/21 PHP
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
PHP中soap的用法实例
2014/10/24 PHP
php获取Google机器人访问足迹的方法
2015/04/15 PHP
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
克隆javascript对象的三个方法小结
2011/01/12 Javascript
Android中资源文件(非代码部分)的使用概览
2012/12/18 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
原生JS中slice()方法和splice()区别
2017/03/06 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
vue-router相关基础知识及工作原理
2018/03/16 Javascript
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
2019/04/24 Javascript
简单了解Vue + ElementUI后台管理模板
2020/04/07 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
Python中基本的日期时间处理的学习教程
2015/10/16 Python
Python中使用haystack实现django全文检索搜索引擎功能
2017/08/26 Python
Django ORM框架的定时任务如何使用详解
2017/10/19 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
使用python爬取B站千万级数据
2018/06/08 Python
使用Python来开发微信功能
2018/06/13 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
python Pillow图像处理方法汇总
2019/10/16 Python
美国知名奢侈美容品牌零售商:Cos Bar
2017/04/21 全球购物
中国制造网:Made-in-China.com
2019/10/25 全球购物
EJB的角色和三个对象
2015/12/31 面试题
深圳茁壮笔试题
2015/05/28 面试题
文明学生标兵事迹
2014/01/21 职场文书
群众路线教育实践活动方案
2014/02/02 职场文书
取保候审保证书
2014/04/30 职场文书
幼儿园教师演讲稿
2014/05/06 职场文书
社会实践心得体会范文
2016/01/14 职场文书
Java中的随机数Random
2022/03/17 Java/Android