Jump to content
  • 0

вопрос по раздвижному каталогу


voprospokodu
 Share

Question

Здравствуйте!

возможно, у кото-то найдется время помочь начинающему... ???

есть простой код:

он взят из этого же форума)

<script type="text/javascript">

function toggle_show(id) {

document.getElementById(id).style.display = document.getElementById(id).style.display == 'none' ? 'block' : 'none';

}

</script>

<ul>

<li> <a href="01.php" onclick="toggle_show('mm')">Название 1</a>

<ul id="mm" style="display: none">

<li><a href="11.php" подраздел 11</a></li>

<li><a href="12.php" подраздел 12</a></li>

<li><a href="13.php" подраздел 13</a></li>

</ul>

</li>

</ul>

он понятен, и все работает.

на нем построен каталог со ссылками в файле html

этот файл html является частью страницы php.

таким образом, сайт состоит из php страниц, в каждой из которых слева html каталог с навигацией по этим же страницам.

вот часть кода:

<ul>

<li> <a href="01.php" onclick="toggle_show('mm')">Название раздела</a>

<ul id="mm" style="display: none">

<li><a href="11.php">подраздел 11</a>

<li><a href="12.php">подраздел 12</a>

<li><a href="13.php">подраздел 13</a>

</ul>

</li>

проблема возникает, когда нажимаешь на "Название раздела"

- каталог успевает раскрыться, но в этот момент мы оказываемся на странице

"Название раздела"

и подкаталог закрыт, ведь мы на другой странице!! - неудобно.

если фиксировать (подсмотрел у других) ссылку командой

return false

то можно рассмотреть подкаталог сколь угодно долго

<ul>

<li> <a href="01.php" onclick="toggle_show('mm'); return false;">Название раздела</a>

<ul id="mm" style="display: none">

<li><a href="11.php">подраздел 11</a>

<li><a href="12.php">подраздел 12</a>

<li><a href="13.php">подраздел 13</a>

</ul>

</li>

но как только нажать на ссылку

"подраздел 11" (или другой подраздел), мы оказываемся на странице

"подраздел 11"

и подкаталог снова закрыт

как зафиксировать раскрытый каталог при переходах на другие страницы, в которых есть этот же каталог?? (он прописан как обращение к файлу html)

то есть я перехожу на "подраздел 11", а каталог остается открытым в том же месте, где я его открыл...

заранее спасибо

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Ну это ж легко

if (in_array(basename(getenv('SCRIPT_NAME')),array('11.php','12.php','13.php')))
$stl='block';
else $stl='none';


<ul id="mm" style="<?=$stl;?>">
...
</ul>

Может, конечно, не работать, мне проверять лень, главное суть понять

Edited by Int
Link to comment
Share on other sites

  • 0
Ну это ж легко

if (in_array(basename(getenv('SCRIPT_NAME')),array('11.php','12.php','13.php')))
$stl='block';
else $stl='none';


<ul id="mm" style="<?=$stl;?>">
...
</ul>

Может, конечно, не работать, мне проверять лень, главное суть понять

пока не проверял, НО

если у меня сайт из сотен страниц с длинными названиями, и они разделены на подразделы по 5-10 страниц, их все перечислять???

собственно, вот он, живой пример, сделаны только первые две строчки каталога (по цветомузыке):

http://www.adada.ru/

Link to comment
Share on other sites

  • 0

Если страницы разделов формируются из БД, тогда можно добавить в таблицу страниц еще колонку раздел, а при выводе страницы проверять к какому разделу она относится и ставить display:block нужному разделу.

Если же страницы статические, тогда можно на каждой добавлять метку раздела:

$section_lable="svet-dinamich" или $section_lable="svet-music" и т.д.

В меню всем ul поставить id в соответствии с $section_lable.

<?
function get_style ($value)
{
global $section_lable;

if ($section_lable!=$value) return " style='display:none'";
else return ""; // display:block можно не писать, т.к. он устанавливается по умолчанию
}
?>
<a href="svet-dinamich.php" title="световые музыкальные приборы эффекты светомузыка мигалки купить цветомузыку прожекторы" onclick="toggle_show('svet-dinamich'); return false;"><b> цветомузыка дискотеки</b><br> - световые приборы эффекты мигалки</a>
<ul id="svet-dinamich" <?echo get_style ("svet-dinamich");?>>
...
</ul>
<ul id="svet-music" <?echo get_style ("svet-music");?>>
...
</ul>

Link to comment
Share on other sites

  • 0

спасибо за отклик,

что такое БД - не знаю, но попробую разобраться в вашем примере.

страницы, судя по всему статические - я всегда редактирую каждую страницу отдельно.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy