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('&nbsp;',$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);

?>
繼續學習
||
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?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";
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
图片放大关闭