[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: можно ли установить значения через PHP
Бараклюш
Описание вопроса:
сайт 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 - есть нотис

Спустя 2 минуты, 8 секунд (22.10.2011 - 01:19) Guest написал(а):
Цитата (Invis1ble @ 21.10.2011 - 22:11)
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>";

и он просто пишет на экране class="tut"
не добавляет в ссылку, а просто на экран выводит ... unsure.gif

Спустя 2 минуты, 53 секунды (22.10.2011 - 01:22) Игорь_Vasinsky написал(а):
а мой?

Спустя 2 минуты, 5 секунд (22.10.2011 - 01:24) Бараклюш написал(а):
user posted image
и нифика совет Invis1ble не работает ...

Спустя 1 минута, 12 секунд (22.10.2011 - 01:25) Бараклюш написал(а):
Игорь_Vasinsky - честно, php вообще не знаю, изучаю его минут 30 как, поэтому вообще не понял куда ваш код вставлять (((

Спустя 4 минуты, 38 секунд (22.10.2011 - 01:30) Бараклюш написал(а):
может я что неправильно пояснил,
есть файл index.php , в нём код
<?php
include ("menu.php");
?>


в файле же menu.php всё уже и обрабатывается

Спустя 11 минут, 36 секунд (22.10.2011 - 01:42) Игорь_Vasinsky написал(а):
:D :D :D замени свой на мой


$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) Бараклюш написал(а):
biggrin.gif пока что мой, пусть и с простыми функциями get if echo
но работает tongue.gif

Спустя 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 {



бардак biggrin.gif

Спустя 1 минута, 28 секунд (22.10.2011 - 02:00) Бараклюш написал(а):
Цитата (Invis1ble @ 21.10.2011 - 22:11)
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"'
то это было бы отличным решением.
Как переделать этот код ??? :huh:

Спустя 1 минута, 26 секунд (22.10.2011 - 02:01) Игорь_Vasinsky написал(а):
вот же - меняет

$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 в страницу, и соответственно редактировать всё это проще для меня, и веси всё это минимум,

Спустя 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 biggrin.gif biggrin.gif biggrin.gif biggrin.gif Я понимаю, ветка для новичков в PHP,
но если вы даже не проверяете то что пишите, и судя по всему не удосужились посмотреть как всё работает на сайте,
то может прекратите ваш флуд? и подождём того кто более сведущь ? А то складывается впечатление, что вас на спор зачали ...

Спустя 3 минуты, 52 секунды (22.10.2011 - 02:28) Игорь_Vasinsky написал(а):
удач.

Спустя 36 секунд (22.10.2011 - 02:28) Бараклюш написал(а):
вот предложение Invis1ble

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) {
    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>";

ДААААААААААА!!!!! :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, т.е пусто было, то ему приравнивалась единица, и становилась активной первая ссылка
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 и долгие годы жизни (и отсутствие геморроя smile.gif )


А можно прояснить?
Тут сравнивается (isset($_GET['m']) не TRUE то приравнять m=1 и влепить ему значение class=tut ? так ? unsure.gif

Спустя 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) Бараклюш написал(а):
Блин, красава! biggrin.gif

Теперь хоть спать спокойно пойду.
Спасибо тебе добрый человек, с меня шоколадка wink.gif

Спустя 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
а то вновь вернулся к такому
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) Бараклюш написал(а):
ссылка просто ссылка,
например на контакты -
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'"
а к остальным ничего не приравниваем

Спустя 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)
Цитата

можно сделать так:
$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 минуты, 29 секунд (30.10.2011 - 21:08) Invis1ble написал(а):
На каких еще донорах ? )
Попробуй - узнаешь. Вобще-то это код меню, не знаю про каких доноров ты говоришь.

Спустя 16 минут, 28 секунд (30.10.2011 - 21:24) Бараклюш написал(а):
парюсь к ночи )))

Переписал, попробовал работает.
Благодарю, счас буду изучать foreach свойства по мануалам.

Коротко как работает ? Из массива берёт название и адрес страницы, формирует ссылку, а дальше ? Как он (код) понимает что именно той странице на которой он сейчас, присвоить class=tut ???
В какой команде - это сравнение происходит ?

Спустя 4 минуты, 29 секунд (30.10.2011 - 21:29) Invis1ble написал(а):
Цитата
Как он (код) понимает что именно той странице на которой он сейчас

это особая уличная магия smile.gif
коротко - инфа о текущем URL и прочих приколах находится в суперглобальном массиве $_SERVER. Вобщем кури мануалы, учи язык, тогда сам все поймешь.

Спустя 8 минут, 32 секунды (30.10.2011 - 21:37) Бараклюш написал(а):
$_SERVER Я этой ночью курил ))) пробовал его совместно с массивом,
просто не вьеду что то после прочтения про foreach,
как он без сравнения с адресом страницы это делает sad.gif
примеров мало в интернете для самостоятельного разбора.
Так что уж не пинайте сильно за "тёмность " мою biggrin.gif

Спустя 3 минуты, 7 секунд (30.10.2011 - 21:41) Бараклюш написал(а):
а менюшка ,кстати,
вышла дельная по функционалу :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 !!!!

как я не догадался сравнить адрес страницы с её адресом из массива wacko.gif happy.gif

Спустя 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

меню не выделяется активным классом wacko.gif
но выводится

Спустя 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

<?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
Быстрый ответ:

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