не работают настройки по умолчанию

C8
На сайте с 01.09.2010
Offline
4
745

Имеется скрип горизонтального меню, при клике по пунктам которого передается идентификатор меню (переменная id) сравнивается с номером меню и при совпадении переменной id с переменной page активному пункту меню присваивается class='focus'

А если переменной не существует то по умолчанию я прописал вот такую строку:

 if (!isset($id)){$id=1;}

но по какой-то причине это не срабатывает и class='focus' не присваивается пункту меню...

в чем проблема, кто знает?

<?php

$result = mysql_query ("SELECT * FROM top_menu",$db);

if (!isset($id)){$id=1;}
while ($top_menu = mysql_fetch_array ($result))
{
if ($id==$top_menu['page'])
{
$class = " class='focus'";
}
else
{
$class = null;
}
echo "<td".$class."><a href='wiev_top_menu.php?id=".$top_menu['id']."'>".$top_menu['button_name']."</a></td>";
}
AlikZP
На сайте с 22.11.2009
Offline
107
#1

А что такое id? где определена эта переменная?

Как я помню она передается в $_GET, но вы же отключили register_globals

Попробуйте

$id = intval($_GET['id']) > 0 ? intval($_GET['id']) : 1;

вместо

if (!isset($id)){$id=1;}

Website CMS: быстрая, удобная, недорогая! Вечная лицензия за 45$ (/ru/forum/524503) Яся - быстрый поиск фото для товаров. OpenCart/ocStore. Дополнение. (/ru/forum/665287) Грамотная верстка ваших макетов (/ru/forum/comment/8853216)
C8
На сайте с 01.09.2010
Offline
4
#2

у меня этот скрипт подключается к index.php и перменная id в нем не передается через строку браузера так как эта страница главная и загружается при загрузке сайта с параметрами по умолчанию, то есть выборкой из базы информации по главной страницы и с

if (!isset($id)){$id=1;} 

так как переменной в тот момент еще не существует пока что... но на главной стиль который должен присвоиться не присваивается почему то... а если щелкнуть по кнопке меню главная то он появится но загрузится уже не index.php а страница вывода для всех пунктов меню wiev_top_menu.php? да тут сразу вопрос у меня из за того что контент главной выводится из базы на 2 разных страницы index.php и wiev_top_menu.php поисковик проиндексирует этот контент как один или как два разных?

pikasso
На сайте с 27.01.2008
Offline
150
#3

Проверьте значение "$top_menu", что именно там находится на главной странице.

ЗЫ

А вообще debug: отличная штука, вам поможет.

V2D2
На сайте с 02.07.2007
Offline
67
#4

а если проще:

if (!$id) {$id=1;}
pikasso
На сайте с 27.01.2008
Offline
150
#5
region15:
а если проще:

if (!$id) {$id=1;}

А может будем сначала думать, перед тем как писать чушь ? 🙅

А если у ТС есть id с номером 0 (а вдруг, пойди пойми людей) ?

Тогда:

$id=0;

if (!$id) {$id=1;}

Будет присваивать переменной абсолютно не то, чего ожидает ТС. Потом пойди отлови подобного рода ошибку.

А вообще почитайте ещё разок на досуге про типы данных в PHP.

C8
На сайте с 01.09.2010
Offline
4
#6

Все нашел ошибку... у меня в index.php перед html кодом страницы была такая строка:

$id = intval($_GET['id']); 

а проверка того существует ли переменная этим пере выводом меню

if (!isset($id)){$id=1;}

то есть получается что переменная id создавалась но пустой поэтому 1 ей не присваивалась так как условие не выполнялось..

спасибо всем за все)

Но вот все-таки что там по поводу вопроса про индексацию главной? который был выше..

C
На сайте с 04.02.2005
Offline
291
#7

if (!isset($id) || empty($id)){$id=1;}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий