php 多级导航显示
写一次,想一次...重新做一次...? 这回就放这了..以后用直接过来copy.
第一段代码
得到要显示的类别.
一级目录放在categories[0],
二级目录放在categories[1],
三级目录放在categories[2],
....以此类推
不过一般最多到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 | $cpath = array ();
if (! empty ( $_REQUEST [ "parentId" ])){
$current_category [ "parentId" ] = $_REQUEST [ "parentId" ];
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" ]));
}
array_unshift ( $cpath , "null" );
$categories_level_count = sizeof( $cpath );
for ( $i =0; $i $cpath [ $i ]
);
$categories [ $i ] = $db_conn ->search( $db_category , $data_category );
}
|
Copier après la connexion
第二段代码是将菜单以
1 2 3 4 5 6 7 | <ul>
?<li>
<ul>
...
</ul>
?</li>
</ul>
|
Copier après la connexion
的形式显示菜单
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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);
|
Copier après la connexion
?
?