PHP와 자바스크립트를 이용한 드롭다운 메뉴
제목 그대로 php와 javascript 를 이용한 드롭다운 메뉴 소스입니다. 오래전에 괜찮다 싶어서 저장 해놨던 소스라 출처는 기억이 안나는데, 해외 사이트에서 퍼온걸로 기억됩니다.
// menu title => menu target $menu = array('Menu One'=>array('Page One'=>'blist_menu.php?pg=1', 'Page Two'=>'blist_menu.php?pg=2'), 'Menu Two'=>array('Page Three'=>'blist_menu.php?pg=3', 'Page Four'=>'blist_menu.php?pg=4'), 'Menu Three'=>array('Page Five'=>'blist_menu.php?pg=5', 'Menu Four'=>array('Page Six'=>'blist_menu.php?pg=6', 'Page Seven'=>'blist_menu.php?pg=7')));
// alternative method to using cookies function array_search_recursive($needle, $haystack) { $pos = null; $keys = array_keys($haystack); while(!$pos && (list($garbage, $value)=each($keys))) { if(is_scalar($haystack[$value])) { if($haystack[$value] === $needle) $pos[] = $value; } elseif(is_array($haystack[$value])) { if($pos = array_search_recursive($needle, $haystack[$value])) array_unshift($pos, $value); } } return $pos; }
// recursive function to draw menu function draw_menu($menu, $preserve, &$id) { if($id == 0) echo " \r\n \r\n"; else echo "\r\n \r\n"; $id += 1;
foreach($menu as $key=>$value) { if(is_array($value)) { if(@in_array($key, $preserve)) $toggle = $id; echo " - $key
\r\n"; draw_menu($value, $preserve, $id); } else { echo "- ";
if(@in_array($key, $preserve)) echo "$key"; else echo "$key"; echo " \r\n"; } } echo " \r\n \r\n"; if(isset($toggle)) echo "\r\n"; }
$id = 0; $base = basename($_SERVER['PHP_SELF']); $self = isset($_SERVER['QUERY_STRING']) ? $base.'?'.$_SERVER['QUERY_STRING'] : $base; $preserve = array_search_recursive($self, $menu); draw_menu($menu, $preserve, $id);
?> | | |
|
|