сайт http://stan-l.com
есть меню со ссылками, хотел чтобы при нажатии на ссылку, как то задавалось значение class этой ссылки, (в данном случае <a href="..." class="tut"> чтобы она была выделенной.
Сейчас сделал это довольно громоздко (на мой взгляд) таким образом :
<?php
echo "<div class='link'>";
if (($_GET['m'] ==1) || ($_GET['m'] =="")){
echo "<a href='index.php?m=1' id='link1' class='tut'>Главная </a>";} else {
echo "<a href='index.php?m=1' id='link1'>Главная </a>";
}
if ($_GET['m'] ==2) {
echo "<a href='index.php?m=2' id='link2' class='tut'>Услуги </a>";} else {
echo "<a href='index.php?m=2' id='link2' >Услуги </a>";}
...
echo "</div>";
?>
для каждой из семи ссылок.
Можно ли как то это сделать более коротко ?
Спустя 3 минуты, 3 секунды (22.10.2011 - 01:11) Бараклюш написал(а):
в ссылках задаю параметр ?m=.. который потом и интерпритируется
Спустя 39 секунд (22.10.2011 - 01:11) Invis1ble написал(а):
function addClass($m) {
if ($_GET['m'] == $m) echo ' class="tut"';
}
echo "<a href='index.php?m=1' id='link1'" . addClass(1) . ">Главная </a>";
echo "<a href='index.php?m=2' id='link2'" . addClass(2) . ">Услуги </a>";
Спустя 42 секунды (22.10.2011 - 01:12) Игорь_Vasinsky написал(а):
$class = isset($_GET['class']) ? $_GET['class'] : false;
if($class)
$class = 'class="'.$class.'"';
<a <php echo $class; ?> href='index.php?m=1" id="link1">Главная </a>
Спустя 5 минут, 8 секунд (22.10.2011 - 01:17) Игорь_Vasinsky написал(а):
Invis1ble
нет GET - есть нотис
нет GET - есть нотис
Спустя 2 минуты, 8 секунд (22.10.2011 - 01:19) Guest написал(а):
Цитата (Invis1ble @ 21.10.2011 - 22:11) |
function addClass($m) { |
и он просто пишет на экране class="tut"
не добавляет в ссылку, а просто на экран выводит ...
Спустя 2 минуты, 53 секунды (22.10.2011 - 01:22) Игорь_Vasinsky написал(а):
а мой?
Спустя 2 минуты, 5 секунд (22.10.2011 - 01:24) Бараклюш написал(а):
и нифика совет Invis1ble не работает ...
Спустя 1 минута, 12 секунд (22.10.2011 - 01:25) Бараклюш написал(а):
Игорь_Vasinsky - честно, php вообще не знаю, изучаю его минут 30 как, поэтому вообще не понял куда ваш код вставлять (((
Спустя 4 минуты, 38 секунд (22.10.2011 - 01:30) Бараклюш написал(а):
может я что неправильно пояснил,
есть файл index.php , в нём код
в файле же menu.php всё уже и обрабатывается
есть файл index.php , в нём код
<?php
include ("menu.php");
?>
в файле же menu.php всё уже и обрабатывается
Спустя 11 минут, 36 секунд (22.10.2011 - 01:42) Игорь_Vasinsky написал(а):
:D :D :D замени свой на мой
а вообще - достаточно CSS
$class = isset($_GET['class']) ? $_GET['class'] : false;
if($class)
$class = "class='".$class."'";
echo "<a ".$class." href='index.php?m=1' id='link1'>Главная </a>";
echo "<a ".$class." href='index.php?m=2' id='link2'>Услуги </a>";
а вообще - достаточно CSS
m1{
color:red;
}
m1:hover{
color:green;
}
Спустя 5 минут, 41 секунда (22.10.2011 - 01:47) Бараклюш написал(а):
Игорь_Vasinsky код просто выводит ссылки, без class
<a href='index.php?m=1' id='link1'>Главная </a><a href='index.php?m=2' id='link2'>Услуги </a>
Спустя 1 минута, 47 секунд (22.10.2011 - 01:49) Бараклюш написал(а):
пока что мой, пусть и с простыми функциями get if echo
но работает
но работает
Спустя 5 минут, 18 секунд (22.10.2011 - 01:54) Игорь_Vasinsky написал(а):
$class = isset($_GET['class']) ? $_GET['class'] : false;
if($class AND $class = 1)
$class = "class='tut'";
echo "<a ".$class." href='index.php?m=1' id='link1'>Главная </a>";
echo "<a ".$class." href='index.php?m=2' id='link2'>Услуги </a>";
Спустя 2 минуты, 58 секунд (22.10.2011 - 01:57) Игорь_Vasinsky написал(а):
да у тя логику не понять.
Спустя 1 минута, 2 секунды (22.10.2011 - 01:58) Игорь_Vasinsky написал(а):
Цитата |
if (($_GET['m'] ==1) || ($_GET['m'] =="")){ echo "<a href='index.php?m=1' id='link1' class='tut'>Главная </a>";} else { |
Цитата |
if ($_GET['m'] ==2) { echo "<a href='index.php?m=2' id='link2' class='tut'>Услуги </a>";} else { |
бардак
Спустя 1 минута, 28 секунд (22.10.2011 - 02:00) Бараклюш написал(а):
Цитата (Invis1ble @ 21.10.2011 - 22:11) |
function addClass($m) { |
вот если бы в коде, вместо echo ' class="tut"';
было бы присвоение значению функции addClass значения ' class="tut"'
то это было бы отличным решением.
Как переделать этот код ??? :huh:
Спустя 1 минута, 26 секунд (22.10.2011 - 02:01) Игорь_Vasinsky написал(а):
вот же - меняет
если $_GET['m'] == 1 - то класс = tut
если $_GET['m'] == 2 - то класса нет
а у тя и так и так есть.. как работает.. хз
$class = isset($_GET['m']) ? $_GET['m'] : false;
if($class)
$class = "class='tut'";
echo "<a ".$class." href='index.php?m=1' id='link1'>Главная </a>";
echo "<a ".$class." href='index.php?m=2' id='link2'>Услуги </a>";
если $_GET['m'] == 1 - то класс = tut
если $_GET['m'] == 2 - то класса нет
а у тя и так и так есть.. как работает.. хз
Спустя 9 минут, 43 секунды (22.10.2011 - 02:11) Бараклюш написал(а):
Игорь_Vasinsky ты не понял просто ))))))))))))
посмотри как сейчас это на сайте у меня
http://stan-l.com
у каждой ссылки, есть дополнение m=чемуто,
при переходе по ссылке, в menu.php читается это дополнительное m, и в зависимости от того какое оно, та ссылка в меню становится выделенной.
Для чего это всё? А для того что у меня страницы имеют просто каркас, по принципу cms, а всё необходимое меню, шапка, футер, тексты, включаются include в страницу, и соответственно редактировать всё это проще для меня, и веси всё это минимум,
посмотри как сейчас это на сайте у меня
http://stan-l.com
у каждой ссылки, есть дополнение m=чемуто,
при переходе по ссылке, в menu.php читается это дополнительное m, и в зависимости от того какое оно, та ссылка в меню становится выделенной.
Для чего это всё? А для того что у меня страницы имеют просто каркас, по принципу cms, а всё необходимое меню, шапка, футер, тексты, включаются include в страницу, и соответственно редактировать всё это проще для меня, и веси всё это минимум,
Спустя 9 минут, 8 секунд (22.10.2011 - 02:20) Игорь_Vasinsky написал(а):
$class = isset($_GET['m']) ? $_GET['m'] : false;
if($class)
#$class = "class='tut'";
echo "ОоОоо Я активная ссылка";
else
echo "обычная сылка";
/**
echo "<a ".$class." href='index.php?m=1' id='link1'>Главная </a>";
echo "<a ".$class." href='index.php?m=2' id='link2'>Услуги </a>";
*/
Спустя 3 минуты, 37 секунд (22.10.2011 - 02:24) Бараклюш написал(а):
Игорь_Vasinsky Я понимаю, ветка для новичков в PHP,
но если вы даже не проверяете то что пишите, и судя по всему не удосужились посмотреть как всё работает на сайте,
то может прекратите ваш флуд? и подождём того кто более сведущь ? А то складывается впечатление, что вас на спор зачали ...
но если вы даже не проверяете то что пишите, и судя по всему не удосужились посмотреть как всё работает на сайте,
то может прекратите ваш флуд? и подождём того кто более сведущь ? А то складывается впечатление, что вас на спор зачали ...
Спустя 3 минуты, 52 секунды (22.10.2011 - 02:28) Игорь_Vasinsky написал(а):
удач.
Спустя 36 секунд (22.10.2011 - 02:28) Бараклюш написал(а):
вот предложение Invis1ble
Кто нибудь, помогите!
вместо echo ' class="tut"';
присвоить значению функции addClass значения ' class="tut"'
function addClass($m) {
if ($_GET['m'] == $m) echo
}
echo "<a href='index.php?m=1' id='link1'" . addClass(1) . ">Главная </a>";
echo "<a href='index.php?m=2' id='link2'" . addClass(2) . ">Услуги </a>";
Кто нибудь, помогите!
вместо echo ' class="tut"';
присвоить значению функции addClass значения ' class="tut"'
Спустя 4 минуты, 22 секунды (22.10.2011 - 02:33) Invis1ble написал(а):
function addClass($m) {
if (isset($_GET['m']) && $_GET['m'] == $m) return ' class="tut"';
}
echo "<a href='index.php?m=1' id='link1'" . addClass(1) . ">Главная </a>";
echo "<a href='index.php?m=2' id='link2'" . addClass(2) . ">Услуги </a>";
Спустя 9 минут, 34 секунды (22.10.2011 - 02:42) Guest написал(а):
Цитата (Invis1ble @ 21.10.2011 - 23:33) |
function addClass($m) { |
ДААААААААААА!!!!! :lol: БЛАГОДАРЮ!!!
вот что вышло
function addClass($m) {
if (isset($_GET['m']) && $_GET['m'] == $m) return ' class="tut"';
}
echo "<a href='index.php?m=1' id='link1'" . addClass(1) . ">Главная </a>";
echo "<a href='index.php?m=2' id='link2'" . addClass(2) . ">Услуги </a>";
echo "<a href='index.php?m=3' id='link3'" . addClass(3) . ">Оборудование </a>";
echo "<a href='index.php?m=4' id='link4'" . addClass(4) . ">Каталог </a>";
echo "<a href='index.php?m=5' id='link5'" . addClass(5) . " >Лизинг </a>";
echo "<a href='kontakty.php?m=6' id='link6'" . addClass(6) . ">Контакты </a>";
echo "<a href='index.php?m=7' id='link7'" . addClass(17) . " >О нас </a>";
Спустя 4 минуты, 20 секунд (22.10.2011 - 02:46) Бараклюш написал(а):
можно тогда ещё вопрос? ;)
у меня было сделано так что при открытии главной страницы index.php
при вставке menu.php если значение было не равно 1, т.е пусто было, то ему приравнивалась единица, и становилась активной первая ссылка
как в вашем коде уважаемый Invis1ble, это можно реализовать ?
у меня было сделано так что при открытии главной страницы index.php
при вставке menu.php если значение было не равно 1, т.е пусто было, то ему приравнивалась единица, и становилась активной первая ссылка
if (($_GET['m'] ==1) || ($_GET['m'] =="")){
echo "<a href='index.php?m=1' id='link1' class='tut'>Главная </a>";} else {
echo "<a href='index.php?m=1' id='link1'>Главная </a>";
}
как в вашем коде уважаемый Invis1ble, это можно реализовать ?
Спустя 7 минут, 12 секунд (22.10.2011 - 02:54) Invis1ble написал(а):
function addClass($m) {
$p = isset($_GET['m']) ? $_GET['m'] : 1;
if ($p == $m) return ' class="tut"';
}
Спустя 7 минут, 18 секунд (22.10.2011 - 03:01) Бараклюш написал(а):
Всё великолепно работает ! Слава, хвала, почёт и уважение Invis1ble и долгие годы жизни (и отсутствие геморроя )
А можно прояснить?
Тут сравнивается (isset($_GET['m']) не TRUE то приравнять m=1 и влепить ему значение class=tut ? так ?
А можно прояснить?
Тут сравнивается (isset($_GET['m']) не TRUE то приравнять m=1 и влепить ему значение class=tut ? так ?
Спустя 3 минуты, 58 секунд (22.10.2011 - 03:05) Бараклюш написал(а):
Вдруг кому тоже пригодиться, полностью код моего menu.php под редакцией Invis1ble
<?php
function addClass($m) {
$p = isset($_GET['m']) ? $_GET['m'] : 1;
if ($p == $m) return ' class="tut"';
}
echo "<a href='index.php?m=1' id='link1'" . addClass(1) . ">Главная </a>";
echo "<a href='index.php?m=2' id='link2'" . addClass(2) . ">Услуги </a>";
echo "<a href='index.php?m=3' id='link3'" . addClass(3) . ">Оборудование </a>";
echo "<a href='index.php?m=4' id='link4'" . addClass(4) . ">Каталог </a>";
echo "<a href='index.php?m=5' id='link5'" . addClass(5) . " >Лизинг </a>";
echo "<a href='kontakty.php?m=6' id='link6'" . addClass(6) . ">Контакты </a>";
echo "<a href='index.php?m=7' id='link7'" . addClass(7) . " >О нас </a>";
?>
Спустя 7 секунд (22.10.2011 - 03:05) Invis1ble написал(а):
Цитата |
А можно прояснить? |
Цитата |
$p = isset($_GET['m']) ? $_GET['m'] : 1; |
проверяется, существует ли в массиве _GET элемент с ключем m, если да - переменная p принимает значение этого элемента, если нет - принимает дефолтное 1.
Цитата |
if ($p == $m) return ' class="tut"'; |
если значение p равно переданному в ф-цию аргументу - ф-ция возвращает строку ' class="tut"'
Спустя 4 минуты, 29 секунд (22.10.2011 - 03:09) Бараклюш написал(а):
Блин, красава!
Теперь хоть спать спокойно пойду.
Спасибо тебе добрый человек, с меня шоколадка
Теперь хоть спать спокойно пойду.
Спасибо тебе добрый человек, с меня шоколадка
Спустя 5 дней, 22 часа, 57 минут, 23 секунды (28.10.2011 - 02:07) Бараклюш написал(а):
Возникло новое условие,
при переходе из поисковика, к примеру на страницу - контакты, у меню, выделено не ссылка контакты, а первая ссылка, т.к по умолчанию мы ему присваиваем m=1
Думаю присвоить каждой странице свой номер, ну например контакты это $m=6;
как прочитать эту переменную в разработанном выше коде , точнее как её перевести из $m в m
Спустя 24 минуты, 14 секунд Бараклюш написал(а):
ступил, как её использовать в меню,
если есть цифра, то соответствующей цифре addClass принять значенние class="tut"
типа как if ($m == 6) return ' class="tut"';
а как правильно ? и если можно без многократного IF
а то вновь вернулся к такому
Спустя 7 часов, 57 минут, 57 секунд Бараклюш написал(а):
не работает , $p почему то принимает значения все от 1 до 7
вынос $p = ((int) ($m)) ; за функцию - ничего не дал.
при переходе из поисковика, к примеру на страницу - контакты, у меню, выделено не ссылка контакты, а первая ссылка, т.к по умолчанию мы ему присваиваем m=1
Думаю присвоить каждой странице свой номер, ну например контакты это $m=6;
как прочитать эту переменную в разработанном выше коде , точнее как её перевести из $m в m
Спустя 24 минуты, 14 секунд Бараклюш написал(а):
ступил, как её использовать в меню,
если есть цифра, то соответствующей цифре addClass принять значенние class="tut"
типа как if ($m == 6) return ' class="tut"';
а как правильно ? и если можно без многократного IF
а то вновь вернулся к такому
if ($m ==1){
echo "<a href='index.php?m=1' id='link1' class='tut'>Главная </a>";} else {
echo "<a href='index.php?m=1' id='link1'>Главная </a>";
}
if ($m ==2) {
echo "<a href='index.php?m=2' id='link2' class='tut'>Услуги </a>";} else {
echo "<a href='index.php?m=2' id='link2' >Услуги </a>";}
if ($m ==3) {
echo "<a href='index.php?m=2' id='link3' class='tut'>Оборудование </a>";} else {
echo "<a href='index.php?m=2' id='link3' >Оборудование </a>";}
if ($m ==4) {
echo "<a href='index.php?m=2' id='link4' class='tut'>Каталог </a>";} else {
echo "<a href='index.php?m=2' id='link4' >Каталог </a>";}
if ($m ==5) {
echo "<a href='index.php?m=2' id='link5' class='tut'>Лизинг </a>";} else {
echo "<a href='index.php?m=2' id='link5' >Лизинг </a>";}
if ($m ==6) {
echo "<a href='index.php?m=2' id='link6' class='tut'>Контакты </a>";} else {
echo "<a href='index.php?m=2' id='link6' >Контакты </a>";}
if ($m ==7) {
echo "<a href='index.php?m=2' id='link7' class='tut'>О нас </a>";} else {
echo "<a href='index.php?m=2' id='link7' >О нас </a>";}
Спустя 7 часов, 57 минут, 57 секунд Бараклюш написал(а):
function addClass($m) {
$p = ((int) ($m)) ;
if ($p == $m) return ' class="tut"';
}
не работает , $p почему то принимает значения все от 1 до 7
вынос $p = ((int) ($m)) ; за функцию - ничего не дал.
Спустя 9 часов, 36 минут, 47 секунд (28.10.2011 - 11:44) Invis1ble написал(а):
Я ничего не понял. Как выглядит ссылка из поисковика?
Спустя 12 часов, 31 минута, 38 секунд (29.10.2011 - 00:15) Бараклюш написал(а):
ссылка просто ссылка,
например на контакты -
соответственно откроется страница контакты, где невыделено соответствующего пункта меню :(
Хочу присвоить страницам внутри себя номер от 1 до 7,
при сборке меню функцией include надо чтобы прочитался номер, и соответсвующему этому номеру, пункту меню, присвоилось значение class=tut
например страница контакты имеет в себе код
в menu.php код присваивать должен ссылке с номером 6, нужный класс.
Соответственно если страница имеет цифру 1, то код присваивает класс - ссылке с номером 1.
структура страниц у меня такая
поэтому и нужно чтобы попадая по ссылке которая не несёт в url нужной цифры меню, страница всё равно имела свою индивидуально выделенную ссылку меню
например на контакты -
http://stan-l.com/kontakty.php
соответственно откроется страница контакты, где невыделено соответствующего пункта меню :(
Хочу присвоить страницам внутри себя номер от 1 до 7,
при сборке меню функцией include надо чтобы прочитался номер, и соответсвующему этому номеру, пункту меню, присвоилось значение class=tut
например страница контакты имеет в себе код
<?php
$m=6;
?>
в menu.php код присваивать должен ссылке с номером 6, нужный класс.
Соответственно если страница имеет цифру 1, то код присваивает класс - ссылке с номером 1.
структура страниц у меня такая
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
...
</head>
<body>
<?
include ('header.php'); //dставляю шапку
?>
<?php
$m=2; //индивидуальный номер страницы
?>
<?php
include ("menu.php"); //вставляю меню, где и должно происходить присвоение класса для ссылки
?>
<?php
include ("footer.php"); //низ всавляю
?>
</body>
</html>
поэтому и нужно чтобы попадая по ссылке которая не несёт в url нужной цифры меню, страница всё равно имела свою индивидуально выделенную ссылку меню
Спустя 10 часов, 51 минута, 27 секунд (29.10.2011 - 11:07) Invis1ble написал(а):
тут только костыли лепить
function addClass($m) {
$p = isset($_GET['m']) ? $_GET['m'] : 1;
if ($p == $m || ($_SERVER['PHP_SELF'] == '/kontakty.php' && $m == 6)) return ' class="tut"';
}
Спустя 14 минут, 57 секунд (29.10.2011 - 11:22) XCross написал(а):
У меня так:
Можно так:
$pages = array('home' => 'Главная', 'register' => 'Регистрация', 'about' => 'О нас');
foreach($pages as $link => $caption){
if($_GET['page'] == $link){
echo '<a href="index.php?page='.$link.'" class="current">'.$caption.'</a>';
}else{
echo '<a href="index.php?page='.$link.'">'.$caption.'</a>';
}
}
Можно так:
$pages = array('home' => 'Главная', 'register' => 'Регистрация', 'about' => 'О нас');
foreach($pages as $link => $caption){
$class = $_GET['page'] == $link ? 'class=current' : NULL;
echo '<a href="index.php?page='.$link.'" '.$class.'>'.$caption.'</a>';
}
Спустя 2 часа, 18 минут, 39 секунд (29.10.2011 - 13:40) Бараклюш написал(а):
а изящнее нельзя ? как выше предлагал Invis1ble для решения если число читалось из URL .
А теперь то это число - само приходит в menu.php
надо только взять его и приравнять ссылке с таким номером, соответствующий класс.
И всё.
Т.е.
Число есть. оно у нас в $m находится,
надо только если $m=1 то присвоить addClass(1) = "class='tut'" и echo "<a href='index.php?m=1' " . addClass(1) . ">Главная </a>";
соответственно если $m=2 то addClass(2) = "class='tut'"
если $m=3 то addClass(3) = "class='tut'"
...
вот так хотелось бы.
Просто перебором не хочется это делать, а с помощью функции определить:
смотрим на $m и приравниваем addClass($m) = "class='tut'"
а к остальным ничего не приравниваем
А теперь то это число - само приходит в menu.php
надо только взять его и приравнять ссылке с таким номером, соответствующий класс.
И всё.
Т.е.
Число есть. оно у нас в $m находится,
надо только если $m=1 то присвоить addClass(1) = "class='tut'" и echo "<a href='index.php?m=1' " . addClass(1) . ">Главная </a>";
соответственно если $m=2 то addClass(2) = "class='tut'"
если $m=3 то addClass(3) = "class='tut'"
...
вот так хотелось бы.
Просто перебором не хочется это делать, а с помощью функции определить:
смотрим на $m и приравниваем addClass($m) = "class='tut'"
а к остальным ничего не приравниваем
Спустя 1 день, 5 часов, 3 минуты, 9 секунд (30.10.2011 - 18:43) Бараклюш написал(а):
просидел всю ночь перепробовал массивы и функции и ничего не понял , пока перебором сделал ... <_<
<?php
if ($m==1){
echo "<a href='index.php' class='tut'>Главная </a>";} else {
echo "<a href='index.php' >Главная </a>";
}
if ($m ==2) {
echo "<a href='usllugi.php' class='tut'>Услуги </a>";} else {
echo "<a href='uslugi.php'>Услуги </a>";}
if ($m ==3) {
echo "<a href='oborudovanie.php' class='tut'>Оборудование </a>";} else {
echo "<a href='oborudovanie.php' >Оборудование </a>";}
if ($m ==4) {
echo "<a href='katalog.php' class='tut'>Каталог </a>";} else {
echo "<a href='katalog.php'>Каталог </a>";}
if ($m ==5) {
echo "<a href='lizing.php' class='tut'>Лизинг </a>";} else {
echo "<a href='lizing.php'>Лизинг </a>";}
if ($m ==6) {
echo "<a href='kontakty.php' class='tut'>Контакты </a>";} else {
echo "<a href='kontakty.php' >Контакты </a>";}
if ($m ==7) {
echo "<a href='o-nas.php' class='tut'>О нас </a>";} else {
echo "<a href='o-nas.php' >О нас </a>";}
?>
Спустя 15 минут, 53 секунды (30.10.2011 - 18:59) Invis1ble написал(а):
Цитата |
if ($m==1){ echo "<a href='index.php'class='tut'>Главная </a>";} else { echo "<a href='index.php' >Главная </a>"; } if ($m ==2) { echo "<a href='usllugi.php' class='tut'>Услуги </a>";} else { echo "<a href='uslugi.php'>Услуги </a>";} if ($m ==3) { echo "<a href='oborudovanie.php' class='tut'>Оборудование </a>";} else { echo "<a href='oborudovanie.php' >Оборудование </a>";} if ($m ==4) { echo "<a href='katalog.php' class='tut'>Каталог </a>";} else { echo "<a href='katalog.php'>Каталог </a>";} if ($m ==5) { echo "<a href='lizing.php' class='tut'>Лизинг </a>";} else { echo "<a href='lizing.php'>Лизинг </a>";} if ($m ==6) { echo "<a href='kontakty.php' class='tut'>Контакты </a>";} else { echo "<a href='kontakty.php' >Контакты </a>";} if ($m ==7) { echo "<a href='o-nas.php' class='tut'>О нас </a>";} else { echo "<a href='o-nas.php' >О нас </a>";} |
можно сделать так:
$menu = array(
'index.php' => 'Главная',
// тут остальные пункты меню
'o-nas.php' => 'О нас'
);
foreach ($menu as $link => $name)
echo '<a href="' . $link . '"' . ($_SERVER['PHP_SELF'] == '/' . $link ? ' class="tut"' : '') . '>' . $name . '</a>';
Спустя 2 часа, 6 минут, 8 секунд (30.10.2011 - 21:06) Бараклюш написал(а):
Цитата (Invis1ble @ 30.10.2011 - 15:59) | ||
|
На страницах донорах, тогда надо какое значение задавать переменной ?
Спустя 2 минуты, 29 секунд (30.10.2011 - 21:08) Invis1ble написал(а):
На каких еще донорах ? )
Попробуй - узнаешь. Вобще-то это код меню, не знаю про каких доноров ты говоришь.
Попробуй - узнаешь. Вобще-то это код меню, не знаю про каких доноров ты говоришь.
Спустя 16 минут, 28 секунд (30.10.2011 - 21:24) Бараклюш написал(а):
парюсь к ночи )))
Переписал, попробовал работает.
Благодарю, счас буду изучать foreach свойства по мануалам.
Коротко как работает ? Из массива берёт название и адрес страницы, формирует ссылку, а дальше ? Как он (код) понимает что именно той странице на которой он сейчас, присвоить class=tut ???
В какой команде - это сравнение происходит ?
Переписал, попробовал работает.
Благодарю, счас буду изучать foreach свойства по мануалам.
Коротко как работает ? Из массива берёт название и адрес страницы, формирует ссылку, а дальше ? Как он (код) понимает что именно той странице на которой он сейчас, присвоить class=tut ???
В какой команде - это сравнение происходит ?
Спустя 4 минуты, 29 секунд (30.10.2011 - 21:29) Invis1ble написал(а):
Цитата |
Как он (код) понимает что именно той странице на которой он сейчас |
это особая уличная магия
коротко - инфа о текущем URL и прочих приколах находится в суперглобальном массиве $_SERVER. Вобщем кури мануалы, учи язык, тогда сам все поймешь.
Спустя 8 минут, 32 секунды (30.10.2011 - 21:37) Бараклюш написал(а):
$_SERVER Я этой ночью курил ))) пробовал его совместно с массивом,
просто не вьеду что то после прочтения про foreach,
как он без сравнения с адресом страницы это делает
примеров мало в интернете для самостоятельного разбора.
Так что уж не пинайте сильно за "тёмность " мою
просто не вьеду что то после прочтения про foreach,
как он без сравнения с адресом страницы это делает
примеров мало в интернете для самостоятельного разбора.
Так что уж не пинайте сильно за "тёмность " мою
Спустя 3 минуты, 7 секунд (30.10.2011 - 21:41) Бараклюш написал(а):
а менюшка ,кстати,
вышла дельная по функционалу :D без явыскриптов и лишнего css
kmaks предлагал
а эта вышла короче
вышла дельная по функционалу :D без явыскриптов и лишнего css
kmaks предлагал
$pages = array('home' => 'Главная', 'register' => 'Регистрация', 'about' => 'О нас');
foreach($pages as $link => $caption){
if($_GET['page'] == $link){
$class = 'class="current"';
}else{
$class = '';
}
echo '<a href="index.php?page='.$link.'" '.$class.'>'.$caption.'</a>';
}
а эта вышла короче
Спустя 5 минут, 13 секунд (30.10.2011 - 21:46) Invis1ble написал(а):
Цитата |
как он без сравнения с адресом страницы это делает |
как это без сравнения?
Цитата |
($_SERVER['PHP_SELF'] == '/' . $link ? ' class="tut"' : '') |
здесь сравнивается ключ текущего элемента массива menu с $_SERVER['PHP_SELF'], т.е. с текущей страницей и если они равны - выводит class
Спустя 3 минуты, 43 секунды (30.10.2011 - 21:50) Бараклюш написал(а):
Ого как здорово ! Без всякого там IF и GET , SUPEROBOOL !!!!
как я не догадался сравнить адрес страницы с её адресом из массива
как я не догадался сравнить адрес страницы с её адресом из массива
Спустя 11 часов, 49 минут, 37 секунд (31.10.2011 - 09:39) XCross написал(а):
$pages = array('home' => 'Главная', 'register' => 'Регистрация', 'about' => 'О нас');
foreach($pages as $link => $caption){
$class = $_GET['page'] == $link ? 'class=current' : NULL;
echo '<a href="index.php?page='.$link.'" '.$class.'>'.$caption.'</a>';
}
Вот так еще попробуй. Меньше места занимает.
Спустя 13 часов, 14 минут, 1 секунда (31.10.2011 - 22:53) Бараклюш написал(а):
ничего не происходит , в окне адреса появляется (при клике к примеру на контакты) http://stan-l.com/index.php?page=kontakty.php
меню не выделяется активным классом
но выводится
меню не выделяется активным классом
но выводится
Спустя 2 минуты, 35 секунд (31.10.2011 - 22:56) imbalance_hero написал(а):
Бараклюш
Ну а код показать?
Ну а код показать?
Спустя 20 часов, 34 минуты, 49 секунд (1.11.2011 - 19:31) Бараклюш написал(а):
Цитата (imbalance_hero @ 31.10.2011 - 19:56) |
Бараклюш Ну а код показать? |
это код страницы menu.php от kmaks
<?php
echo "<div class='link'>";
$pages = array('index.php' => 'Главная','uslugi.php' => 'Услуги', 'oborudovanie.php'=>'Оборудование','katalog.php'=>'Каталог ','lizing.php'=>'Лизинг','kontakty.php'=>'Контакты','o-nas.php' => 'О нас');
foreach($pages as $link => $caption){
$class = $_GET['page'] == $link ? 'class=current' : NULL;
echo '<a href="index.php?page='.$link.'" '.$class.'>'.$caption.'</a>';
}
echo "</div>";
?>
Спустя 2 минуты, 31 секунда (1.11.2011 - 19:33) Бараклюш написал(а):
в то время как код от Invis1ble
отлично работает, и всё выделяет как надо. Он сейчас и работает, по адресу http://stan-l.com
<?php
echo "<div class='link'>";
$menu = array('index.php' => 'Главная','uslugi.php' => 'Услуги', 'oborudovanie.php'=>'Оборудование','katalog.php'=>'Каталог ','lizing.php'=>'Лизинг','kontakty.php'=>'Контакты','o-nas.php' => 'О нас');
foreach ($menu as $link => $name)
echo '<a href="' . $link . '"' . ($_SERVER['PHP_SELF'] == '/' . $link ? ' class="tut"' : '') . '>' . $name . '</a>';
echo "</div>";
?>
отлично работает, и всё выделяет как надо. Он сейчас и работает, по адресу http://stan-l.com