下拉列表多级联动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 相关文章推荐
第十二节--类的自动加载
Nov 16 PHP
php url地址栏传中文乱码解决方法集合
Jun 25 PHP
PHP得到某段时间区间的时间戳 php定时任务
Apr 12 PHP
php图像处理函数大全(推荐收藏)
Jul 11 PHP
php5.3 goto函数介绍和示例
Mar 21 PHP
php实现的通用图片处理类
Mar 24 PHP
php将html转成wml的WAP标记语言实例
Jul 08 PHP
PHP合并discuz用户脚本的方法
Aug 04 PHP
Zend Framework入门教程之Zend_View组件用法示例
Dec 09 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
Jun 10 PHP
Laravel 实现密码重置功能
Feb 23 PHP
php面向对象程序设计入门教程
Jun 22 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中simplexml_load_string函数使用说明
2011/01/01 PHP
php数字转汉字代码(算法)
2011/10/08 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
2016/10/17 PHP
PHP抽象类与接口的区别实例详解
2019/05/09 PHP
PHP生成zip压缩包的常用方法示例
2019/08/22 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
jQuery Ajax之load()方法
2009/10/12 Javascript
Javascript中克隆一个数组的实现代码
2013/12/06 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
纯javascript判断查询日期是否为有效日期
2015/08/24 Javascript
浅谈JS原生Ajax,GET和POST
2016/06/08 Javascript
BootStrap中Datepicker控件带中文的js文件
2016/08/10 Javascript
原生JS实现图片轮播切换效果
2016/12/15 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
[05:40]DOTA2荣耀之路6:Wings最后进攻
2018/05/30 DOTA
浅析Python中的多进程与多线程的使用
2015/04/07 Python
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
在python 不同时区之间的差值与转换方法
2019/01/14 Python
python对验证码降噪的实现示例代码
2019/11/12 Python
Pytorch 之修改Tensor部分值方式
2019/12/27 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
Python数据可视化图实现过程详解
2020/06/12 Python
python实现学生信息管理系统源码
2021/02/22 Python
详解HTML5中的拖放事件(Drag 和 drop)
2016/11/14 HTML / CSS
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
全球领先的各类汽车配件零售商:Advance Auto Parts
2016/08/26 全球购物
Crocs波兰官方商店:女鞋、男鞋、童鞋、洞洞鞋
2019/10/08 全球购物
教师求职信范文分享
2013/12/27 职场文书
回门宴答谢词
2014/01/13 职场文书
财务内勤岗位职责
2014/04/17 职场文书
团日活动总结报告
2014/06/25 职场文书
社会工作专业求职信
2014/07/15 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL