| Цитата(Aliance @ 30.9.2004, 21:44) | | Цитата(Ignat @ 30.9.2004, 10:50) | | JavaScript используй. |
Абсолютно верно!
Делаем фреймы, и передаем параметры через фреймы (есть функции escape() и unescape())
Можно еще и с использованием XML (фреймы допустимы для стандарта XHTML 1.0 для фреймов, проблем не будет.)
Написал бы функцию, да бе твоей функции меню не получиться, кидай ее...
P.S. перенесите тему в JS Добавлено @ 21:46 P.P.S.: возможно это будет в скоропоявявщемся FAQ`е по JavaScript`ам |
Мне этот скрипт понравился, увы, не помню кто автор. Вроде, должен работать везде. Повторно привожу код инициализации.
| Код | <script> function initTree(root) { for(var i=0; i<root.childNodes.length; i++) { if(/li/i.test(root.childNodes[i].nodeName)) { uls = root.childNodes[i].getElementsByTagName('ul'); if(uls.length) { root.childNodes[i].firstChild.onclick = function(e) { target = e?e.currentTarget:window.event?this:null; if(!target) return; ul = (target.parentNode.getElementsByTagName('ul'))[0]; if(ul.style.display=='none') { ul.style.display = ''; target.className = target.className.replace(/\scollapsed\b/,' expanded'); } else { ul.style.display = 'none'; target.className = target.className.replace(/\sexpanded\b/,' collapsed'); }
}; uls[0].style.display = 'none'; root.childNodes[i].firstChild.className += ' collapsed'; initTree(uls[0]); } } } } </script>
|
не забыть стартануть:
| Код | <body onload="initTree(document.getElementById('root'))"> |
Описание меню такое:
| Код | <ul id="root"> <li><h2>Раздел 1</h2> <ul> <li><a href="1.php">Ссылка1</A></li> <li><a href="2.php">Ссылка2</a></li> <li><a href="3.php">Ссылка3</A></li> </ul> </li> <li><h2><a href="4.php">Раздел_ссылка</a></h2></li> </ul>
|
и ещё часть эффекта заложена в css:
| Код | #root li { list-style: none; }
#root h2, #root h3, #root h4, #root li { padding: 0.15em 0px 0.15em 0px; margin: 0px; line-height: 120%; }
.collapsed { background: url("p.gif") no-repeat left center; cursor: pointer; cursor: hand; }
.expanded { background: url("m.gif") no-repeat left center; cursor: pointer; cursor: hand; }
|
Кстати, интересно узнать, нет ли проблем во втором случае, где раздел/ссылка. У меня в ИЕ и Опере работает, но один человек говорил что были проблемы.
Хотелось бы сильно не корежить имеющееся. Как передать массив через пост (сохраняя его имя) я уже разобрался. Вот как я это решил силами php:
| Код | <?php $temp=$myarray; foreach ($temp as $cur) echo "<INPUT type=hidden name=\"myarray[]\" value=$cur>"; ?>
|
Видно, нужно только сабмит на ссылки повесить. Это никаких проблем не вызовет? У всех работать будет? От слова фрейм в дрожь бросает - чтобы от них избавиться, php стал учить. |