下拉列表多级联动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 相关文章推荐
3
Oct 09 PHP
PHP中通过ADO调用Access数据库的方法测试不通过
Dec 31 PHP
php 无极分类(递归)实现代码
Jan 05 PHP
php获取mysql字段名称和其它信息的例子
Apr 14 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
Nov 28 PHP
php判断文件夹是否存在不存在则创建
Apr 09 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
Jun 06 PHP
CI框架数据库查询之join用法分析
May 18 PHP
PHP sleep()函数, usleep()函数
Aug 25 PHP
php微信开发之关键词回复功能
Jun 13 PHP
thinkphp5使用无限极分类
Feb 18 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
Aug 03 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 iconv 函数转gb2312的bug解决方法
2009/10/11 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
2016/10/11 PHP
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
javascript处理表单示例(javascript提交表单)
2014/04/28 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
2014/05/04 Javascript
全面兼容的javascript时间格式化函数(比较实用)
2014/05/14 Javascript
javascript单引号和双引号的区别和处理
2014/05/14 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
Bootstrap入门书籍之(一)排版
2016/02/17 Javascript
使用jQuery制作基础的Web图片轮播效果
2016/04/22 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
2017/01/21 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
用angular实现多选按钮的全选与反选实例代码
2017/05/23 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
2017/08/04 Javascript
jQuery中将json数据显示到页面表格的方法
2018/05/27 jQuery
jQuery实现轮播图及其原理详解
2020/04/12 jQuery
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
Python创建日历实例
2014/08/21 Python
python分割列表(list)的方法示例
2017/05/07 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
2020/02/26 Python
Html5实现用户注册自动校验功能实例代码
2016/05/24 HTML / CSS
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
客服工作职责
2013/12/11 职场文书
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
家长学校培训材料
2014/08/20 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
刑事撤诉申请书
2015/05/18 职场文书
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript