下拉列表多级联动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 相关文章推荐
在WIN98下以apache模块方式安装php
Oct 09 PHP
怎样才能成为PHP高手?学会“懒惰”的编程
Dec 05 PHP
Windows下利用Gvim写PHP产生中文乱码问题解决方法
Apr 20 PHP
探讨如何把session存入数据库
Jun 07 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
Jun 07 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
Sep 10 PHP
详解PHP的Yii框架的运行机制及其路由功能
Mar 17 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
Aug 08 PHP
PHP制作登录异常ip检测功能的实例代码
Nov 16 PHP
PHP获取星期几的常用方法小结
Dec 18 PHP
Yii框架Session与Cookie使用方法示例
Oct 14 PHP
Yii框架小部件(Widgets)用法实例详解
May 15 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
人大复印资料处理程序_查询篇
2006/10/09 PHP
source.php查看源文件
2006/12/09 PHP
PHP中实现中文字符进制转换原理分析
2011/12/06 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
2014/08/15 PHP
php实现paypal 授权登录
2015/05/28 PHP
Yii2中使用join、joinwith多表关联查询
2016/06/30 PHP
highchart数据源纵轴json内的值必须是int(详解)
2017/02/20 PHP
JS在IE和FireFox之间常用函数的区别小结
2010/03/12 Javascript
js鼠标左右键 键盘值小结
2010/06/11 Javascript
jQuery的12招常用技巧分享
2011/08/08 Javascript
Js四则运算函数代码
2012/07/21 Javascript
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
js淡入淡出焦点图幻灯片效果代码分享
2015/09/08 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
2019/11/13 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
Python字符串的encode与decode研究心得乱码问题解决方法
2009/03/23 Python
Python入门篇之编程习惯与特点
2014/10/17 Python
使用pdb模块调试Python程序实例
2015/06/02 Python
深入理解Python变量与常量
2016/06/02 Python
Python 搭建Web站点之Web服务器与Web框架
2016/11/06 Python
Python中按值来获取指定的键
2019/03/04 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
2020/03/19 Python
python实现数字炸弹游戏
2020/07/17 Python
python创建文本文件的简单方法
2020/08/30 Python
Python通过len函数返回对象长度
2020/10/22 Python
html5新增的属性和废除的属性简要概述
2013/02/20 HTML / CSS
项目开发计划书
2014/01/09 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript
python使用pywinauto驱动微信客户端实现公众号爬虫
2021/05/19 Python