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

来源:www.13sc.com | 游客上传 | 386 次浏览 | 0 条评论

搜索: 下拉列表 多级联动 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.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实例

Thinkphp模板中使用自定义函数的方法

xml在joomla表单中的应用详解分享

wamp下修改mysql访问密码的解决方法

php 网上商城促销设计实例代码

php小型企业库存管理系统的设计与实现代码

用PHP读取超大文件的实例代码

基于MySQL体系结构的分析

Apachephpmysql在windows下的安装与配置(图文)第1/2页

PHPMailer使用教程(PHPMailer发送邮件实例分析)

PHP实现手机归属地查询API接口实现代码

网页游戏开发入门教程三(简单程序应用)

ajax php传递和接收变量实现思路及代码

Copyright 2009-2013 13sc.com All Rights Reserved.