DropDownList控件又称下拉列表框控件, 控件 列表 中的多行数 据 以隐含 的形式表 示 出 来,当用户需要选择所需列表项时,通过点击 “下三角 ”图形 展示 ,用户每次 只能选用一个 数据项。DropDownList控件实际上是列表项 的 容器 ,下拉列表框 用 Items集合表示各项 的内 容。如果在 ASP.NET页面中逐个 的手 动填写 DropDownList控件的列表选项,当列表项很多 的时候会 比较繁琐 ,而且修改 比较麻烦 。 DropDownList控件动态连接到数据库,按指定 条件从数据库 中查询 出列表选项数据,然后绑 定到控件,可以方便快速地显示出多个下拉选 项 。 同时 ,通过修 改数据库 中数据 ,可 以动 态改 变下 拉选项。例如 ,在导 师遴 选系统 中, 研究生导师填写申请信息 的时候 ,需要选 择申 请类型,而且同样的信息在多处页面出现,将 数据库中申请类型表的数据绑定到 DropDownList控件上,能比较好的解决问题。

本文为大家详细介绍下下拉列表多级联动 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.phppublic 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'];

}

其它:

数据表结构

效果:

没有选择节点前:

php dropdownlist,php 下拉列表多级联动dropDownList示例代码相关推荐

  1. php dropdownlist,下拉列表多级联动dropDownList示例代码

    视图: cdnauto/views/config/index.php echo CHtml::dropDownList('node', '', CHtml::listData(Node::model( ...

  2. python省市区三级联动_Django Admin实现三级联动的示例代码(省市区)

    通过自定义Admin的模板文件实现省市区的三级联动.要求创建记录时,根据省>市>区的顺序选择依次显示对应数据. 修改记录时默认显示已存在的数据. Model class Member(mo ...

  3. java实现三级联动查询_jeefast和Mybatis实现三级联动的示例代码

    在二级联动的基础上 html部分 学校 --请选择学校-- {{v.name}} js部分 getdayschool:function () { $.ajax({ type: "post&q ...

  4. 多级联动下拉java,下拉列表多级联动前端实现

    一 获取一级分类 1 组件数据定义 添加在Info.vue的data中 subjectList: [], // 一级分类 subjectLevelTwoList: [] // 二级分类 2 组件脚本 ...

  5. python echarts 多图联动,创建echart多个联动的示例代码

    鼠标悬浮同时触发多个echart 效果如下 html代码 选择时间间隔 one second one second one minute one hour one day one week one m ...

  6. 【小程序开发必备】微信小程序常用API全介绍,附示例代码和使用场景

    文章目录 1.网络请求相关API 1.1 wx.request 1.2 wx.uploadFile 1.3 wx.downloadFile 1.4 wx.connectSocket 2.页面跳转相关A ...

  7. 用ajax实现dropdownlist多级联动实例

    经常用dropdownlist绑定数据,涉及到多级联动的问题,刷新页面不太好,于是花了点时间,用AjaxPro来实现无刷新绑定DropDownList数据的问题. ------------------ ...

  8. 用ajax(vb.net) 实现dropdownlist二级无刷新联动~!

    说说vb.net ajaxpro 实现dropdownlist二级无刷新联动~! Code <div class="div_RSL">  <asp:DropDow ...

  9. 实现DropDownList 无刷新的联动效果

    如图: 1.引用ajax.dll http://www.cnblogs.com/ou444/admin/Files.aspx 2.Web.config <httpHandlers>     ...

最新文章

  1. 给GRUB添加新的项目
  2. 马云打响本地生活消费攻坚战,饿了么获手淘一级入口,美团危险了
  3. 极客新闻——03、陈庆敏:项目管理的三个关键
  4. 【Python-ML】电影评论数据集文本挖掘
  5. java scanner字符串_Java Scanner toString()用法及代码示例
  6. 什么是前端开发中的Pseudo elements
  7. 使用spring的@autowired注解,无法实例化dao
  8. 1台车至少赚1万块!华为卖车,两天订单破3000辆
  9. 什么是智慧仓储化管理系统?
  10. word2vec词向量建立
  11. ElasticSearch集群迁移和升级总结
  12. c语言编程车牌限行,机动车尾号限行提示器
  13. 输出2—1000的所有同构数c语言详解
  14. 看动图,读懂光纤通信背后的原理!
  15. Hcse 交换知识点-2
  16. kasp技术原理_KASP 2x PCR Mix 说明书
  17. Linux常用指令(5)——20.4.25
  18. 日常pytho3练习脚本之--两个逗比聊天机器人
  19. ERR_NETWORK_CHANGED
  20. 人脸扫描建模_黑科技 | 3D人脸建模可以多简单?一张照片就搞定!

热门文章

  1. 免费使用高性能的GPU和TPU—谷歌Colab使用教程
  2. 【计算机视觉】会议投稿相关推荐
  3. 谷安天下CISA培训——2012情人节特惠
  4. 无法下载TI软件和文件的解决办法
  5. 蓝桥杯单片机设计与开发⑪ --- DS1302
  6. 英语学习篇 - 英语习得性理论
  7. lucene(3)——版本5.X写中文同义词分词器
  8. 理解react中的高阶组件和高阶函数
  9. mmGrid使用及常用参数
  10. 垂直细分行业最成功的SaaS初创公司Veeva CEO说