[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: выпадающее меню
4itaz
Хочу сделать менюшку для сайта. Задача - что б она достаточно легко настраивалась (пункты, подпункты и т.д.)

Код
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php

$root['sub1'] = array('tx1' => 'http://1');
$root['sub2'] = array('tx2' => 'http://2');

$root['sub1']['sub12'] = array('tx12' => 'http://12');
$root['sub2']['sub22'] = array('tx22' => 'http://22');

$root['sub1']['sub12']['sub123'] = array('tx123' => 'http://123');
$root['sub2']['sub22']['sub223'] = array('tx223' => 'http://223');


?>
<ul id="adv_admin_bar_nav">
    <? foreach ($root as $rts) { ?>
    <li><a href="<? echo $rts[$key]; ?>"><? echo $rts[$value]; ?></a>
        <ul>
            <? foreach ($rts as $sub) { ?>
            <li>
            <a href="<? echo $sub; ?>"><? echo $sub; ?></a>
                <ul>
                <? foreach ($rts as $sub) { ?>
                    <li>
                        <a href="<? echo $sub; ?>"><? echo $sub; ?></a>
                    </li>
                <? } ?>
                </ul>
            </li>
            <? } ?>
        </ul>
    </li>
    <? } ?>
</ul>

</body>
</html>


но совершенно не понимаю, как выводить sad.gif
если можно, для каждого уровня расписать foreach ($root as $rts) и <a href="<? echo $rts[$key]; ?>"><? echo $rts[$value]; ?></a> то благодарность моя просто границ не будет знать. smile.gif
Готов Материально проспонсировать поддержавщего. В разумных пределах smile.gif за 2 то строчки кода smile.gif



Спустя 1 день, 18 часов, 53 минуты, 46 секунд (22.11.2007 - 20:40) bars80080 написал(а):
моё личное мнение, лучше не заморачиваться с ассоциативными массивами, а использовать порядковые

Код
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml ">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title></head><body>
<?php   // $root = array('header', 'link', subpunkt1, subpunkt2, subpunkt3...);    //  model

$root = array('','');
$root[2 + 0] = array('tx1', 'http://1');
$root[2 + 1] = array('tx2', 'http://2');
$root[2][2 + 0] = array('tx11', 'http://11');
$root[2][2 + 1] = array('tx12', 'http://12');
$root[3][2 + 0] = array('tx21', 'http://21');
$root[3][2 + 1] = array('tx22', 'http://22');
$root[2][2][2] = array('tx111', 'http://111');
$root[2][2][3] = array('tx112', 'http://112');   ?>

<ul id="adv_admin_bar_nav">

<?
for($i1 = 2; isset($root[$i1]); $i1++) {
    echo '<li><a href="'.$root[$i1][1].'">'.$root[$i1][0].'</a><ul>';
    for($i2 = 2; isset($root[$i1][$i2]); $i2++) {
        echo '<li><a href="'.$root[$i1][$i2][1].'">'.$root[$i1][$i2][0].'</a><ul>';
        for($i3 = 2; isset($root[$i1][$i2][$i3]); $i3++) {
            echo '<li><a href="'.$root[$i1][$i2][$i3][1].'">'.$root[$i1][$i2][$i3][0].'</a></li>'; }
        echo '</ul></li>'; }
    echo '</ul></li>'; }
?>
</ul>

</body></html>


модель: // $root = array('header', 'link', subpunkt1, subpunkt2, subpunkt3...);
заголовок, ссылка и дальше идут массивы подпунктов
перебирая эти массивы, мы начинаем счёт с 2, т.к. элементы с номером 0 и 1 уже использованы

мало того такую систему впоследствии можно расширить, скажем указывать не только заголовок и ссылку, но ещё и спец.данные, которые впоследствии можно применять для дизайна (выделять некоторые ссылки особым способом) или в структуре (открытие ссылки в текущем окне или новом)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.