yii 下拉列表多级联动 dropDownList
来源:互联网 发布:淘宝联盟推广技巧 编辑:程序博客网 时间:2024/05/12 18:43
视图:
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']; }
其它:
数据表结构
效果:
没有选择节点前:
选择节点后,第二个列表跟着变动:
细节有空再补上了。
- yii 下拉列表多级联动 dropDownList
- yii 下拉列表多级联动 dropDownList
- yii 下拉列表多级联动 dropDownList 实现
- Yii 下拉列表-dropdownlist
- 多级联动下拉列表Ajax方案实现
- THINKPHP + JQUERY 多级下拉列表联动
- ASP利用数据表生成多级联动下拉列表框
- 如何利用Excel数据有效性制作多级联动下拉列表
- JS多级联动下拉列表(不限级数)
- JS多级联动下拉列表(不限级数)
- Ajax技术--多级联动下拉列表($.ajax())
- select 多级联动下拉
- 实例4-5 实现联动打的下拉列表DropDownList控件
- 二级联动 三级联动 多级联动 无限级联动下拉列表或菜单专题
- select下拉框多级联动
- Bootstrap 下拉菜单多级联动
- extjs 下拉框 多级联动
- AJAX多级下拉联动【JSON】
- 直接拿来用!最火的Android开源项…
- Android使用AttributeSet自定义控件的方法
- 两个table并列成为一个table
- java微信公众平台开发二(请求来源校验)
- 转:oracle 视图创建和操作,创建简单,复杂的视图,创建基表不存在的视图,视图增删改,查看视图的结构
- yii 下拉列表多级联动 dropDownList
- 关于开辟After Effects专栏的动因
- HDU 1288 Hat's Tea
- 【你知道win 7系统名字的来源吗】
- 企业权益披露的内容
- 开源浏览器引擎Webkit引发浏览器格局变化
- get route
- 【巧关无用系统启动项 加快开机速度】
- 住在我隔壁储藏室的大学刚毕业的小夫妻