Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

вопросы по php

Автор do50, сентября 15, 2011, 21:04

0 Пользователи и 1 гость просматривают эту тему.

RawonaM

Цитата: do50 от сентября 19, 2011, 22:09
Цитата: RawonaM от сентября 19, 2011, 22:06Пусть не чувствует, не нужно это.
это правда, но что ж я накрутил, что это работало? :???
Вам наверное показалось. :)

do50

Цитата: RawonaM от сентября 19, 2011, 22:11
Вам наверное показалось.
да, я ни-ни, уже две недели (времени нет), хотя... может устал просто  :)
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

do50

есть такой файл
Цитировать
<?php
function GetDataArt($art_id){
  $sel = "SELECT `title`,`content` FROM `articles` WHERE `id` = '$art_id' LIMIT 1";
  $query = mysql_query($sel);
  if(!$query){
echo('Не удалось взять данные из БД!');
  }
  else{
if(mysql_num_rows($query)>0){
  $res = mysql_fetch_array($query);
  $title = $res['title'];
  $content = $res['content'];
}
else{
  $title = 'К сожалению, такая страница отсутствует на данном сайте!';
  $page_title = 'К сожалению, такая страница отсутствует на данном сайте!';
}
$data_arr = array($title, $content);
return $data_arr;
  }
}
?>

и вывод этого добра
Цитировать
<ul id="menu">
         <li><a href="/"><span>Главная</span></a></li>
         <li><a href="/index.php?art_id=2"><span>Поиск</span></a></li>
         <li><a href="/index.php?art_id=3"><span>Регистрация</span></a></li>
         <li><a href="/index.php?art_id=4"><span>Карта сайта</span></a></li>
         <li><a href="/index.php?art_id=5"><span>О сайте</span></a></li>
</ul>
вопрос у меня такой, как сделать, чтобы активная ссылка выделялась?
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

wangjhenbai

Я не понял задачу. Вам нужно вывести то же меню, но выделить активную ссылку?

Я бы сделал так:
<ul id="menu">
<?php
   $links = array(
      array(1, 'Главная'),
      array(2, 'Поиск'),
      array(3, 'Регистрация'),
      array(4, 'Карта сайта'),
      array(5, 'О сайте')
   );

   foreach ($links as $ln) {
      $url = ($ln[0] == 1) ? '/' : '/index.php?art_id=' . $ln[0];
      $text = $ln[1];
      $active = $ln[0] == (int)($_GET['art_id']);
      if ($active) {
         print "<li><a href='$url'><span><strong>$text</strong></span></a></li>";
      }
      else {
         print "<li><a href='$url'><span>$text</span></a></li>";
      }
   }
?>
</ul>
Если я кому-то нужен, д м игрек м д собака яндекс точка ру.

do50

Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

do50

ой, только я вот запутался, а почему "Главная" не выделяется?
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

wangjhenbai

Ой, точно, я не подумал про «Главную».

Замените строчку
$active = $ln[0] == (int)($_GET['art_id']);
на
$active = $ln[0] == (isset($_GET['art_id']) ? (int)($_GET['art_id']) : 1);
Если я кому-то нужен, д м игрек м д собака яндекс точка ру.

wangjhenbai

Я чуть поправил код... (isset($_GET['art_id']) ? (int)($_GET['art_id']) : 1) должно быть в скобках.
Если я кому-то нужен, д м игрек м д собака яндекс точка ру.

do50

Цитата: wangjhenbai от июля  3, 2012, 17:02
$active = $ln[0] == (isset($_GET['art_id']) ? (int)($_GET['art_id']) : 1);
не работает!
Parse error: syntax error, unexpected T_STRING in /home/p17717/www/nova.gaeilge.ru/include/siderbar.php on line 16
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

wangjhenbai

Мне сложно сказать, что там не так, но попробуйте заменить всю эту строчку, скажем, на:
if (isset($_GET['art_id']))
  $active = $ln[0] == (int)($_GET['art_id']) : 1);
else
  $active = $ln[0] == 1;
Если я кому-то нужен, д м игрек м д собака яндекс точка ру.

do50

не-а, не работает, но спасибо! попробую разобраться
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

do50

Цитировать
print "<li><a href='$url'><span><strong>$text</strong></span></a></li>";
      }
      else {
         print "<li><a href='$url'><span>$text</span></a></li>";
      }
тут функция print( ) обязательна или можно использовать echo( )?
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

wangjhenbai

А разве между ними есть какая-то разница?
Если я кому-то нужен, д м игрек м д собака яндекс точка ру.

do50

Цитата: wangjhenbai от июля  3, 2012, 19:41
А разве между ними есть какая-то разница?
мне кажется, что  echo( ) побыстрее работает или я ошибаюсь?
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

wangjhenbai

Нет, они работают с приблизительно одинаковой скоростью.

Разница между echo и print'ом в том, что echo может вывести сразу несколько строк:
echo 'a', 'b', 'c'; //print так не может
Если я кому-то нужен, д м игрек м д собака яндекс точка ру.

do50

Цитата: wangjhenbai от июля  3, 2012, 19:59
Разница между echo и print'ом в том, что echo может вывести сразу несколько строк:
echo 'a', 'b', 'c'; //print так не может
ясно, спасибо вам за помощь
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

do50

а с "Главной" так и не выходит  :'(
еще один вопрос: нужно чтобы активные пункты были без подчёркивания, как и куда "text-decoration:none" прикрутить?
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

Bhudh

Цитата: do50 от июля  3, 2012, 20:06нужно чтобы активные пункты были без подчёркивания, как и куда "text-decoration:none" прикрутить?
К a:hover, a:active.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

wangjhenbai

Простой путь:
Замените:
print "<li><a href='$url'><span><strong>$text</strong></span></a></li>";
на
print "<li><a href='$url' style='text-decoration: none;'><span><strong>$text</strong></span></a></li>";

Идеологически правильный путь (с разделением смысла и внешнего вида):
Замените:
print "<li><a href='$url'><span><strong>$text</strong></span></a></li>";
на
print "<li class='current'><a href='$url'><span>$text</span></a></li>";

А в файл css/style.css добавьте:
ul#menu li.current a {
   text-decoration: none;
   font-weight: bold;
}
Если я кому-то нужен, д м игрек м д собака яндекс точка ру.

wangjhenbai

Цитата: Bhudh от июля  3, 2012, 20:11
Цитата: do50 от июля  3, 2012, 20:06нужно чтобы активные пункты были без подчёркивания, как и куда "text-decoration:none" прикрутить?
К a:hover, a:active.
Я думал, под «активными» понимались «соответствующие открытой в данный момент странице», а не «те, над которыми наведена мышка»...
Если я кому-то нужен, д м игрек м д собака яндекс точка ру.

Bhudh

Соответствующие странице лучше жырным выделять.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

do50

Цитата: wangjhenbai от июля  3, 2012, 20:13
Я думал, под «активными» понимались «соответствующие открытой в данный момент странице», а не «те, над которыми наведена мышка»...
да, вы всё правильно поняли! ещё раз спасибо!
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

wangjhenbai

Цитата: Bhudh от июля  3, 2012, 20:15
Соответствующие странице лучше жырным выделять.
:fp:
Кому от этого лучше?

К тому же жирным они уже и так выделяются, см. тему выше.
Если я кому-то нужен, д м игрек м д собака яндекс точка ру.

do50

Цитата: wangjhenbai от июля  3, 2012, 20:12
Идеологически правильный путь (с разделением смысла и внешнего вида):
Замените:
print "<li><a href='$url'><span><strong>$text</strong></span></a></li>";
на
print "<li class='current'><a href='$url'><span>$text</span></a></li>";

А в файл css/style.css добавьте:
ul#menu li.current a {
   text-decoration: none;
   font-weight: bold;
}
я примерно так и делал, но ставил двойные кавычки и сервер на меня ругался (почти матом!  ;D)
Проблемы интеграции России в ад должны волновать ад, а не Россию

«Россия управляется непосредственно Господом Богом. Иначе невозможно представить, как это государство до сих пор существует», Генерал-фельдмаршал Х. А. Миних
«Россией управлять не сложно, но совершенно бесполезно», Александр II

Python

Цитата: wangjhenbai от июля  3, 2012, 17:16
Мне сложно сказать, что там не так, но попробуйте заменить всю эту строчку, скажем, на:
if (isset($_GET['art_id']))
  $active = $ln[0] == (int)($_GET['art_id']);
else
  $active = $ln[0] == 1;

fixed
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр