下拉列表多级联动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 相关文章推荐
php设计模式 Singleton(单例模式)
Jun 26 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
Jun 20 PHP
使用php 获取时间今天明天昨天时间戳的详解
Jun 20 PHP
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
Dec 22 PHP
Thinkphp框架开发移动端接口(1)
Aug 18 PHP
PHP对象链式操作实现原理分析
Oct 09 PHP
PHP中使用OpenSSL生成证书及加密解密
Feb 05 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
Jun 21 PHP
php爬取天猫和淘宝商品数据
Feb 23 PHP
基于swoole实现多人聊天室
Jun 14 PHP
PHP安装memcache扩展的步骤讲解
Feb 14 PHP
php函数式编程简单示例
Aug 08 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
浅析PHP原理之变量分离/引用(Variables Separation)
2013/08/09 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
php简单检测404页面的方法示例
2019/08/23 PHP
Jquery图形报表插件 jqplot简介及参数详解
2012/10/10 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
js点击文本框后才加载验证码实例代码
2015/10/20 Javascript
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
2016/05/17 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
2016/12/23 Javascript
vue表单绑定实现多选框和下拉列表的实例
2017/08/12 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
express如何使用session与cookie的方法
2018/01/30 Javascript
Angular封装搜索框组件操作示例
2019/04/25 Javascript
JS实现压缩上传图片base64长度功能
2019/12/03 Javascript
python requests爬取高德地图数据的实例
2018/11/10 Python
Python实现常见的回文字符串算法
2018/11/14 Python
树莓派与PC端在局域网内运用python实现即时通讯
2019/06/22 Python
Python和Sublime整合过程图示
2019/12/25 Python
简单介绍一下pyinstaller打包以及安全性的实现
2020/06/02 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
2020/06/23 Python
如何用Python徒手写线性回归
2021/01/25 Python
AmazeUI 单选框和多选框的实现示例
2020/08/18 HTML / CSS
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
美国在线眼镜店:GlassesShop
2018/11/15 全球购物
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
应届毕业生个人自我评价
2013/09/20 职场文书
英语专业个人求职自荐信
2013/09/21 职场文书
工业自动化专业毕业生推荐信
2013/11/18 职场文书
党员公开承诺书范文
2014/03/25 职场文书
优秀党务工作者事迹材料
2014/05/07 职场文书
大学专科自荐信
2014/06/17 职场文书
2014年班干部工作总结
2014/11/25 职场文书
先进集体申报材料
2014/12/25 职场文书
基于redis+lua进行限流的方法
2022/07/23 Redis