Liste déroulante PHP, lien multi-niveau, exemple de code dropDownList

怪我咯
Libérer: 2023-03-13 18:48:01
original
2420 Les gens l'ont consulté

Le contrôle

DropDownList est également appelé contrôle de la liste déroulante Plusieurs lignes de données dans la liste de contrôle sont exprimées sous une forme implicite. Lorsque l'utilisateur doit sélectionner l'élément de liste souhaité, cliquez. Dans l'affichage graphique "triangle inférieur", l'utilisateur ne peut sélectionner qu'une seule donnée à la fois. Le contrôle DropDownList est en fait un conteneur pour les éléments de liste et la zone de liste déroulante utilise la collection Items pour représenter le contenu de chaque élément. Si en ASP. NET, remplissez manuellement la colonne options du tableau du contrôle DropDownList un par un Lorsqu'il y a de nombreux éléments de liste, il sera plus fastidieux et plus difficile à modifier. Le contrôle DropDownList est connecté dynamiquement à la base de données, interroge les données des options de liste de la base de données selon les conditions spécifiées, puis les lie au contrôle, qui peut afficher rapidement et facilement plusieurs options déroulantes. Dans le même temps, les options déroulantes peuvent être modifiées dynamiquement en modifiant les données de la base de données. Par exemple, dans le système de sélection du tuteur, lorsque le tuteur diplômé remplit les informations de candidature, il doit sélectionner le type de candidature, et les mêmes informations apparaissent sur plusieurs pages. Reliez les données du tableau des types de candidature dans la base de données. au contrôle DropDownList , peut mieux résoudre le problème.

Cet article présente en détail la liste déroulantele code d'implémentation spécifique de la liaison multi-niveaux dropDownList

View:
cdnauto/views/config/index .php

Le code est le suivant :

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('--请选择服务器--'));
Copier après la connexion

Contrôleur :
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); 
} 
}
Copier après la connexion

Modèle :
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; 
}
Copier après la connexion

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']; 
}
Copier après la connexion

Autres :
Structure de la table de données
Effet :
Aucune sélection Avant le nœud :
Liste déroulante PHP, lien multi-niveau, exemple de code dropDownList

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal