Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: пункт меню на активной странице
 
 автор: STRIFER   (29.06.2011 в 05:57)   письмо автору
 
 

Гуглил до посинения, но так и не нашел толкового ответа на этот вопрос. Имеется меню, пункты которого выводятся в цикле, то есть в адресной строке выглядит вот так
www.page.php?cat=15.....cat14...cat13 и т.д. Как сделать пункт на котором стоишь в данный момент неактивным, или сменить ему размер и цвет, задать стили? Заранее спасибо!

  Ответить  
 
 автор: ONYX   (29.06.2011 в 08:20)   письмо автору
 
   для: STRIFER   (29.06.2011 в 05:57)
 

Все просто, получаете значение из переменной cat, а потом при формировании меню проверяете, если значение меню совпало с значением выбранного пункта меню то делаете его просто строкой а не ссылкой.

  Ответить  
 
 автор: STRIFER   (29.06.2011 в 08:28)   письмо автору
 
   для: ONYX   (29.06.2011 в 08:20)
 

не могли бы Вы в виде кода показать? чтоб нагляднее

  Ответить  
 
 автор: cheops   (29.06.2011 в 09:58)   письмо автору
 
   для: STRIFER   (29.06.2011 в 05:57)
 

GET-параметры помещаются в глобальный массив $_GET, т.е. получить текущее значение GET-параметра cat можно через $_GET['cat']. Вы вероятно выводите пункты меню в цикле? Сравнивайте их идентификаторы с $_GET['cat'] и принимайте решение о том, подсвечивать их ссылкой или нет.

  Ответить  
 
 автор: STRIFER   (29.06.2011 в 10:37)   письмо автору
 
   для: cheops   (29.06.2011 в 09:58)
 

Спасибо, я возился с функцией вытаскивающей переменную из url. И надо сказать не очень удачно, в случае, когда я переходил на общую страницу, где в адресе нет переменных вылазили ошибки, уверен из-за того, что не правильно поставил условие. может подскажите что тут не так? я пока не очень разбираюсь.



$c = parse_url($_SERVER['REQUEST_URI']);

if (($c['query']) == "cat=".(int) $myrow ["id"]) {
print '<li><a>'.htmlspecialchars ($myrow ["title"]).'</a></li>';

}
else { print '<li><a href="horizontalcat.php?cat='.(int) $myrow ["id"].'">'.htmlspecialchars ($myrow ["title"]).'</a></li>'; }
}
while ($myrow = mysql_fetch_assoc ($result));



  Ответить  
 
 автор: cheops   (29.06.2011 в 14:46)   письмо автору
 
   для: STRIFER   (29.06.2011 в 10:37)
 

Хм... может вот это условие
if (($c['query']) == "cat=".(int) $myrow ["id"]) 
проще заменить на
if ($_GET['cat'] == $myrow ["id"]) 

  Ответить  
 
 автор: STRIFER   (29.06.2011 в 22:02)   письмо автору
 
   для: cheops   (29.06.2011 в 14:46)
 

Да я так и сделал. Но все равно, в случае, когда url вида www.page.php а не www.page.php?cat=15 выдает ошибки(

  Ответить  
 
 автор: Чайчайвыручай   (29.06.2011 в 22:18)   письмо автору
 
   для: STRIFER   (29.06.2011 в 22:02)
 

Думаю, что не совсем понимаю о чем речь, но может поможет это:

Создаете страницу типа:
<table class="telo" width="100%" border="1">
<tr>
<td width="12.5%" <?php if(isset($n)) {if ($n==1) {echo "class='a'";} else {echo "class='t'"; }}?>><p><strong><a href="a.php">111111</a></strong></p></td>
<td width="12.5%" <?php if(isset($n)) {if ($n==2) {echo "class='a'";} else {echo "class='t'"; }}?>><p><strong><a href="a.php">222222</a></strong></p></td>
</tr>
</table>

На страницу 1 вставляете
<? $n=1; include ("blocks/telo.php");?>

На страницу 2 вставляете
<? $n=2; include ("blocks/telo.php");?>

  Ответить  
 
 автор: STRIFER   (29.06.2011 в 22:26)   письмо автору
 
   для: Чайчайвыручай   (29.06.2011 в 22:18)
 

Так получается больше кода. Но все равно спасибо за вариант. А проблему я решил вот так
 if (@$_GET['cat'] == $myrow ["id"]) 
В случае, если в url нету переменных ошибки не выводятся и меню выглядит обычным образом, с рабочими ссылками. Спасибо за помошь Вам!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования