PHP开发分类技术之下拉菜单式分类(三)
我们通过自定义一个函数displayCate,来给循环出来的getList增加
<selsct>样式来输出下拉菜单,类似如下:
|-- 服饰
|-- 男装
|-- 女装
|-- 食品
|-- 主食
|-- 大米
|-- 副食
通过foreach循环输出分类样式, 下拉菜单默认一级分类。
<?php
function displayCate($pid=0,$selected=1){
$rs=getList($pid);
$str='';
$str.="<select name='cate'>";
foreach ($rs as $key=>$val){
$selectedstr='';
if ($val['id'] == $selected){
$selectedstr="selected";
}
$str.="<option {$selectedstr}>{$val['title']}</option>";
}
return $str.="</select>";
}
echo displayCate(0,3);
?>完整实现下拉菜单效果代码:
<?php
header("content-type:text/html;charset=utf8");
$link = mysqli_connect('localhost','username','password','test');
mysqli_set_charset($link, "utf8");
if (!$link) {
die("连接失败:".mysqli_connect_error());
}
function getList($pid=0,&$result=array(),$space=0){
global $link;
$space=$space+2;
$sql="select * from class where pid = $pid";
$res = mysqli_query($link,$sql);
while ($row = mysqli_fetch_assoc($res)){
$row['title']=str_repeat(' ',$space).'|-- '.$row['title'];
$result[]=$row;
getList($row['id'],$result,$space);
}
return $result;
}
$rs=getList();
print_r($rs);
function displayCate($pid=0,$selected=1){
$rs=getList($pid);
$str='';
$str.="<select name='cate'>";
foreach ($rs as $key=>$val){
$selectedstr='';
if ($val['id'] == $selected){
$selectedstr="selected";
}
$str.="<option {$selectedstr}>{$val['title']}</option>";
}
return $str.="</select>";
}
echo displayCate(0,3);
?>
