下拉列表多级联动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调用三种数据库的方法(1)
Oct 09 PHP
php下实现在指定目录搜索指定类型文件的函数
Oct 03 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
Jun 17 PHP
基于empty函数的输出详解
Jun 17 PHP
CodeIgniter模板引擎使用实例
Jul 15 PHP
php判断用户是否手机访问代码
Jun 08 PHP
PHP错误机制知识汇总
Mar 24 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
Nov 25 PHP
PHP实现中国公民身份证号码有效性验证示例代码
May 03 PHP
PDO::_construct讲解
Jan 27 PHP
php求斐波那契数的两种实现方式【递归与递推】
Sep 09 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
Apr 23 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字符串处理的10个简单方法
2010/06/30 PHP
利用PHP实现短域名互转
2013/07/05 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
firefox浏览器下javascript 拖动层效果与原理分析代码
2007/12/04 Javascript
JS 树形递归实例代码
2010/05/18 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
关于Javascript作用域链的八点总结
2013/12/06 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
javascript浏览器兼容教程之事件处理
2014/06/09 Javascript
jQuery CSS3相结合实现时钟插件
2016/01/08 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
2016/11/24 Javascript
javascript中json基础知识详解
2017/01/19 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
Vue.js render方法使用详解
2017/04/05 Javascript
浅谈Node模块系统及其模式
2017/11/17 Javascript
基于js中的存储键值对以及注意事项介绍
2018/03/30 Javascript
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
nodejs微信开发之接入指南
2019/03/17 NodeJs
layui数据表格重载实现往后台传参
2019/11/15 Javascript
JS实现简单的表格增删
2020/01/16 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
vue使用screenfull插件实现全屏功能
2020/09/17 Javascript
pycharm 实现显示project 选项卡的方法
2019/01/17 Python
python 模拟贷款卡号生成规则过程解析
2019/08/30 Python
实例讲解Python 迭代器与生成器
2020/07/08 Python
wordpress添加Html5的表单验证required方法小结
2020/08/18 HTML / CSS
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
Servlet方面面试题
2016/09/28 面试题
护理职业生涯规划书
2014/01/24 职场文书
建房协议书
2014/04/11 职场文书
社区低保工作总结2015
2015/07/23 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书
MySQL索引知识的一些小妙招总结
2021/05/10 MySQL