php 多级导航显示
写一次,想一次...重新做一次...? 这回就放这了..以后用直接过来copy.
第一段代码
得到要显示的类别.
一级目录放在categories[0],
二级目录放在categories[1],
三级目录放在categories[2],
....以此类推
不过一般最多到3级就不再往下分了.
$cpath = array();if(!empty($_REQUEST["parentId"])){//category path//get the category path//put current category id in $cpath$current_category["parentId"] = $_REQUEST["parentId"];// put parent category id in $cpath do{array_unshift($cpath,$current_category["parentId"]);$data_category = array("id" => $current_category["parentId"]);$current_category = array();$current_category = pos($db_conn->search($db_category,$data_category));}while(!empty($current_category["parentId"]));}//add the first level category parentIdarray_unshift($cpath,"null");// get all categories$categories_level_count = sizeof($cpath);for($i=0;$i $cpath[$i]);//get first level categories$categories[$i] = $db_conn->search($db_category,$data_category);//echo $db_category->search($data_category)."";}
第二段代码是将菜单以
<ul> ?<li> <ul> ... </ul> ?</li></ul>
的形式显示菜单
function show_left_navigation($i){global $categories,$cpath;if(empty($categories[$i]))return;echo '<ul>';foreach($categories[$i] as $id=>$category){echo '';if($id==end($cpath))echo '<a href="advancedSearch.php?parentId='.$id.'">'.$category["name"].'</a>';elseecho '<a href="advancedSearch.php?parentId='.$id.'">'.$category["name"].'</a>';if(in_array($id,$cpath))show_left_navigation($i+1);echo '';}echo '</ul>'; }show_left_navigation(0);
?
?