下拉列表多级联动dropDownList示例代码

视图:
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示例代码-js多级联动下拉菜单">
细节有空再补上了。

时间: 2024-12-30 06:06:19

下拉列表多级联动dropDownList示例代码的相关文章

下拉列表多级联动dropDownList示例代码_php实例

视图: 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()->c

Select标签下拉列表二级联动级联实例代码

 这篇文章主要介绍了Select标签下拉列表二级联动级联实例代码,需要的朋友可以参考下 首先从服务器端,绑定下拉列表,二级下拉的text命名按照一定规则加上一级下拉的ID. 代码如下: var options=new Array();     $(document).ready(function(){         //二级联动         $('#ddlPages').children('option').each(function(i){             options[i]=

Select标签下拉列表二级联动级联实例代码_javascript技巧

首先从服务器端,绑定下拉列表,二级下拉的text命名按照一定规则加上一级下拉的ID. 复制代码 代码如下: var options=new Array();    $(document).ready(function(){        //二级联动        $('#ddlPages').children('option').each(function(i){            options[i]='<option value="'+$(this).val()+'"&

用 eric6 与 PyQt5 实现python的极速GUI编程(系列02)---- 省市县(区)下拉列表多级联动

[概览] 本文实现如下的程序: 主要步骤如下: 1.在eric6中新建项目,新建窗体 2.(自动打开)进入PyQt5 Desinger,编辑图形界面,保存 3.回到eric 6,对上一步得到的界面文件 union.ui 文件右击,编译窗体,得到 Ui_union.py 文件 4.然后再对 union.ui 文件右击,生成对话框代码,得到 union.py 文件.(在union.py中添加自己的程序逻辑) 5.py2exe打包成exe文件(此步略)   [正文] 接[概览]第4步,生成对话框代码时

jQuery实现多级联动下拉列表查询框_jquery

本文实例介绍了jQuery实现多级联动下拉列表查询框的详细代码,分享给大家供大家参考,具体内容如下  效果图: 具体代码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title></title> <meta name="keywords" content

jquery 实现二级/三级/多级联动菜单的思路及代码_jquery

本文介绍使用jQuery的AJAX功能和asp.net来实现省市区的三级联动效果,其他二级.三级或多级联动也可以按照此方法完成. 文章中涉及到的数据表为City,为方便管理. 设计此表如下 ID:自增长字段 City_Name:城市名称 City_Code:城市代码 我们根据城市代码来查询省.市.区.城市代码结构大致如下: 内蒙古:150000,呼和浩特:150100,新城区:150101. 其他地区代码与此一样,省级为省级编号+0000,市级为省级编号+市级编号+00,地区为省级编号+市级编号

JS简单实现多级Select联动菜单效果代码_javascript技巧

本文实例讲述了JS简单实现多级Select联动菜单效果代码.分享给大家供大家参考.具体如下: JS联动菜单,简单代码实现JS多级Select联动菜单,也就是大家常用的一款菜单,Select联动状态的菜单,网页上经常见到的效果,希望大家能用得上. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-simple-select-ld-menu-codes/ 具体代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD

jQuery多级联动下拉插件chained用法示例_jquery

本文实例讲述了jQuery多级联动下拉插件chained用法.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

jQuery EasyUI编辑DataGrid用combobox实现多级联动_jquery

我在项目中设计课程表的时候需要用到老师和分类之间的多级联动. 首先是一张效果图: 下面是实现的代码: <body> <script type="text/javascript"> $(function(){ var editing ; //判断用户是否处于编辑状态 var flag ; //判断新增和修改方法 $('#set_schedule').datagrid({ idField:'id' , fitColumns: false , url:'schedul