Привет всем! У меня есть меню, которое реализовано следующим образом: <a href="index.php"> Главная </a> <a href="find.php"> Поиск </a> <a href="add.php"> Добавить </a> И т.д. Вопрос, как сделать так чтобы, когда щёлкаешь мышкой допустим по пункту меню Главная он выделялся каким-то цветом? Подскажите хотя бы, в каком направление двигаться? Заранее спасибо всем.
Пара самых тупых убогих вариантов: 1) Либо цепляться к имени вызываемого скрипта 2) Либо вводить доп. переменную подсветки а дальше: Код (Text): if(!ЕСЛИ) { echo "<a href=....">LINKNAME</a>; } else { echo "<b>LINKNAME</b>"; ЕСЛИ - в зависимости от выбранного варианта
Ты имеешь в виду, когда загрузится, например, главная страничка, чтобы <a href="index.php"> Главная </a> было на ней другим цветом? Или ты имеешь в виду чтобы цвет ссылки менялся в тот момент, как по ней щёлкнули, а когда загрузилась новая страничка - все ссылки на ней опять одинаковые?
Определить, какой файл запросили. PHP: <a href="" <?=($file == 'index.php') ? 'class="current"' : ''?>>Главная</a> <a href="" <?=($file == 'find.php') ? 'class="current"' : ''?>>Поиск</a> <a href="" <?=($file == 'add.php') ? 'class="current"' : ''?>>Добавить</a>
JavaScript Rulez [js]<div id="menuDiv"> <li ><a class="small" href="index.php">1</a></li> <li ><a class="small" href="index2.php"> 2</a></li> <li ><a class="small" href="index3.php">3</a></li> </div> <script type="text/javascript"> try { var nl=document.getElementById('menuDiv').getElementsByTagName('a'); var found=-1; var url=document.location.href+'/'; var len=0; for (var i=0;i<nl.length;i++){ if (url.indexOf(nl.href)>=0){ if (found==-1 || len<nl.href.length){ found=i; len=nl.href.length; } } } if (found>=0){ nl[found].className='bold'; } } catch(e){ } </script> </div> [/js]
Mr.M.I.T. У меня вопрос. Хорошо я выделяю пункты меня с помощью <div> присваиваю ему id ="menuDiv". Я так понимаю если я перейду на index.php или index2.php он мне вернет значение menuDiv либо 0 либо 1. Я правильно понимаю?
Поможет только установить заранее заготовленный стиль шрифта и т.п. и изменять его при наведении мыши на ссылку
Тогда вопрос: Каким образом передавать эти значения 0, 1, 2 и т.д. с помощью GET? Если да, то как правильно это делать?
в скрипте как раз и меняется стиль(класс) со small на bold ээ совсем ничего не понимаю какие значения? зачем их передовать? этот скрипт ищет href в url из сылок в menuDivи,если есть совпадения то меняет CSS класс ссылки на bold
PHP: <?php //menu.php function drawMenu($page){ //$page - имя текущего скрипта $items = array( array('title'=>"Главная", 'url'=>"index.php"), array('title'=>"Найти", 'url'=>"find.php"), array('title'=>"Добавить", 'url'=>"add.php") ); $result = ''; foreach ($items as $item) { if ($item['url'] == $page) { $resul .= "<font color='#FF0000'>".$item['title']."</font><br>"; } else { $resul .= "<a href='".$item['url']."'>".$item['title']."</a><br>"; } } return $result; } ?>
Задача следующая: У меня есть БД с номерами. Мне нужно выводить все информацию по ним на титульную страницу index.php Должна быть возможность добавлять новые номера - это реализовывается на странице add.php, должена быть возможность поиска в БД - это реализовывается на стринеце find.php и т.д. На каждой странице я сделал меню: <div id="menuDiv"> <td colspan="2"><a href="index.php"> Главная </a> </td> <td><a href="add.php" > Добавить </a> </td> <td><a href="find.php"> Найти </a> </td> и т.д. </div> Так вот, я хочу, чтобы когда я нажал по ссылке например "add.php", у меню название "Добавить" выделялось бы каким-то цветом. И так для каждого пункта меню Вот такая задача.
Как я понимаю функции drawMenu($page) должено передаваться url, напрмер find.php или add.php. А каким образом передавать этот url, с помощью GET, если да, то как правильно это делать? Заранее спасибо за ответ.
dembi ну и ничего передобавить не надо, класс ссылки в menuDiv где href найден в адресной строке, будет меняться на bold а уж этому классу вы можете задать любые стили... 2.
Использую вот такой простой код: <?php //menu.php function drawMenu($page){ //$page - имя текущего скрипта $items = array( array('title'=>"Главная", 'url'=>"1.php"), array('title'=>"Найти", 'url'=>"3.php"), array('title'=>"Добавить", 'url'=>"2.php") ); $result = ''; foreach ($items as $item) { if ($item['url'] == $page) { $resul .= "<font color='#000000'>".$item['title']."</font><br>"; } else { $resul .= "<a href='".$item['url']."'>".$item['title']."</a><br>"; } } return $result; } echo drawMenu($_SERVER['PHP_SELF']); ?> <html> <head> <title> Главная </title> </head> <body> <table> <tr> <div id="menuDiv"> <td colspan="2" ><a href="1.php"> Главная </a> </td> <td ><a href="2.php" > Добавить </a> </td> <td ><a href="3.php"> Найти </a> </td> </div> </tr> </table> </body> </html> Но к сожалению цвет Ссылки не меняется после нажатия на нее. Да и кстати, как мне вывести значение menuDiv, то есть как можно узнать какая ссылка сейчас выбрана? Если использовать echo $_SERVER['PHP_SELF']; Я получаю следующий результат: /1.php Подскажи, пожалуйста, где я ошибаюсь?
Удали лишний символ функцией substr. А где у тебя в коде цвет меняется? И там если я правильно понял два меню должно получиться=)
Вобщем здесь смысл такой, у тебя есть три скрипта, в каждом из которых нужно нарисовать меню и выделять пункт в зависимсти от того какая станица открыта. Для этого можно в каждом скрипте инклудить скрипт с функцией drawMenu, которая рисует собственно это меню и выделяет в нём пункт в зависимости от переданого параметра $page - урл скрипта в котором используется функция (можно хоть вручную написать его). Оформление меню, стили и прочее задается в самой функции.
как я понимаю весь результат у меня хранится в переменой $resul. Как теперь этот результат правильно извлечь и использовать в этом коде: <tr> <div id="menuDiv"> <td colspan="2" ><a href="1.php"> Главная </a> </td> <td ><a href="2.php" > Добавить </a> </td> <td ><a href="3.php"> Найти </a> </td> </div> </tr> ???
Еще раз большое спасибо всем. Все получилось используя скрипт предложенный free-bits. Всем приятного вечера