溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用dropDownList怎么實(shí)現(xiàn)下拉列表多級(jí)聯(lián)動(dòng)

發(fā)布時(shí)間:2021-07-22 16:30:29 來源:億速云 閱讀:398 作者:Leah 欄目:開發(fā)技術(shù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)使用dropDownList怎么實(shí)現(xiàn)下拉列表多級(jí)聯(lián)動(dòng),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

視圖:
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)前:
使用dropDownList怎么實(shí)現(xiàn)下拉列表多級(jí)聯(lián)動(dòng) 

上述就是小編為大家分享的使用dropDownList怎么實(shí)現(xiàn)下拉列表多級(jí)聯(lián)動(dòng)了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI