下拉列表多級(jí)聯(lián)動(dòng)dropDownList示例代碼
更新時(shí)間:2013年06月27日 17:22:04 作者:
本文為大家詳細(xì)介紹下下拉列表多級(jí)聯(lián)動(dòng) dropDownList具體的實(shí)現(xiàn)代碼,感興趣的朋友可以參考下哈,至于一些細(xì)節(jié)部分后續(xù)再補(bǔ)
視圖:
cdnauto/views/config/index.php
echo CHtml::dropDownList('node', '', CHtml::listData(Node::model()->findAll(),'name','name'),array('empty'=>'--請(qǐng)選擇節(jié)點(diǎn)--',
'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('--請(qǐng)選擇服務(wù)器--'));
控制器:
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']); //通過節(jié)點(diǎn)名稱獲取該節(jié)點(diǎn)ID
$server = GossServer::model()->getServerByNodeid($nodeid); //通過節(jié)點(diǎn)ID獲取服務(wù)器信息
//$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
/**
* 通過節(jié)點(diǎn)ID獲取該節(jié)點(diǎn)下所有的服務(wù)器名稱
* @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("找不到這個(gè)節(jié)點(diǎn)對(duì)應(yīng)的服務(wù)器");
}
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'];
}
其它:
數(shù)據(jù)表結(jié)構(gòu)
效果:
沒有選擇節(jié)點(diǎn)前:
細(xì)節(jié)有空再補(bǔ)上了。
cdnauto/views/config/index.php
復(fù)制代碼 代碼如下:
echo CHtml::dropDownList('node', '', CHtml::listData(Node::model()->findAll(),'name','name'),array('empty'=>'--請(qǐng)選擇節(jié)點(diǎn)--',
'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('--請(qǐng)選擇服務(wù)器--'));
控制器:
cdnauto/controllers/ConfigController.php
復(fù)制代碼 代碼如下:
public function actionGetNodeServersByNodeName(){
// if(!Yii::app()->request->isAjaxRequest)
// throw new CHttpException(404);
$node_name = $_POST['node_name'];
$nodeid = Node::model()->getNodeId($_POST['node_name']); //通過節(jié)點(diǎn)名稱獲取該節(jié)點(diǎn)ID
$server = GossServer::model()->getServerByNodeid($nodeid); //通過節(jié)點(diǎn)ID獲取服務(wù)器信息
//$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
復(fù)制代碼 代碼如下:
/**
* 通過節(jié)點(diǎn)ID獲取該節(jié)點(diǎn)下所有的服務(wù)器名稱
* @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("找不到這個(gè)節(jié)點(diǎn)對(duì)應(yīng)的服務(wù)器");
}
return $ret;
}
Node.php
復(fù)制代碼 代碼如下:
/**
* 通過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'];
}
其它:
數(shù)據(jù)表結(jié)構(gòu)
效果:
沒有選擇節(jié)點(diǎn)前:
細(xì)節(jié)有空再補(bǔ)上了。
您可能感興趣的文章:
- Yii2使用dropdownlist實(shí)現(xiàn)地區(qū)三級(jí)聯(lián)動(dòng)功能的方法
- asp.net DropDownList實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)效果
- ASP.NET中DropDownList和ListBox實(shí)現(xiàn)兩級(jí)聯(lián)動(dòng)功能
- DropDownList綁定數(shù)據(jù)表實(shí)現(xiàn)兩級(jí)聯(lián)動(dòng)示例
- 使用jQuery實(shí)現(xiàn)dropdownlist的聯(lián)動(dòng)效果(sharepoint 2007)
- asp.net省市三級(jí)聯(lián)動(dòng)的DropDownList+Ajax的三種框架(aspnet/Jquery/ExtJs)示例
- Jquery實(shí)現(xiàn)無(wú)刷新DropDownList聯(lián)動(dòng)實(shí)現(xiàn)代碼
- asp.net DropDownList 三級(jí)聯(lián)動(dòng)下拉菜單實(shí)現(xiàn)代碼
- dropdownlist之間的互相聯(lián)動(dòng)實(shí)現(xiàn)(顯示與隱藏)
- yii2中dropDownList實(shí)現(xiàn)二級(jí)和三級(jí)聯(lián)動(dòng)寫法
相關(guān)文章
Laravel框架定時(shí)任務(wù)2種實(shí)現(xiàn)方式示例
這篇文章主要介紹了Laravel框架定時(shí)任務(wù)2種實(shí)現(xiàn)方式,結(jié)合實(shí)例形式較為詳細(xì)的分析了Laravel框架定時(shí)任務(wù)相關(guān)實(shí)現(xiàn)方法及操作注意事項(xiàng),需要的朋友可以參考下2018-12-12
php分頁(yè)查詢的簡(jiǎn)單實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了php分頁(yè)查詢的簡(jiǎn)單實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
Laravel實(shí)現(xiàn)登錄跳轉(zhuǎn)功能
網(wǎng)站管理員登錄成功后跳轉(zhuǎn)到網(wǎng)站后臺(tái),vip用戶登錄成功后跳轉(zhuǎn)到vip頁(yè)面,跳轉(zhuǎn)功能怎么實(shí)現(xiàn)的呢,下面小編給大家?guī)?lái)了Laravel實(shí)現(xiàn)登錄跳轉(zhuǎn)功能,需要的朋友可以參考下2021-08-08
Yii 2.0自帶的驗(yàn)證碼使用經(jīng)驗(yàn)分享
這篇文章主要給大家介紹了關(guān)于使用Yii 2.0自帶驗(yàn)證碼的一些經(jīng)驗(yàn),方便新手們快速上手,對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-06-06
使用laravel根據(jù)用戶類型來(lái)顯示或隱藏字段
今天小編就為大家分享一篇使用laravel根據(jù)用戶類型來(lái)顯示或隱藏字段,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-10-10

