Maison >développement back-end >tutoriel php > php 多级领航显示
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 parentId array_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>'; else echo '<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);
?
?