За последние 24 часа нас посетили 16848 программистов и 1620 роботов. Сейчас ищут 1732 программиста ...

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

Тема в разделе "PHP для новичков", создана пользователем cleric-88, 1 сен 2010.

  1. cleric-88

    cleric-88 Активный пользователь

    С нами с:
    12 июл 2010
    Сообщения:
    40
    Симпатии:
    0
    Всем доброй ночи! (по Московскому времени)

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

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

    PHP:
    1. if (!isset($id)){$id=1;}
    но по какой-то причине это не срабатывает и class='focus' не присваивается пункту меню...

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

    PHP:
    1. <?php
    2. $result = mysql_query ("SELECT * FROM top_menu",$db);
    3.  
    4.     if (!isset($id)){$id=1;}
    5.     while ($top_menu = mysql_fetch_array ($result))
    6.     {
    7.     if ($id==$top_menu['page'])
    8.     {
    9.     $class = " class='focus'";
    10.     }
    11.     else
    12.     {
    13.     $class = null;
    14.     }
    15.     echo "<td".$class."><a href='wiev_top_menu.php?id=".$top_menu['id']."'>".$top_menu['button_name']."</a></td>";
    16.     }
    17.  
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а где гарантии, что в таком случае будет хоть один $top_menu['page'] равный единице? =) покажите вардамп такого случая массива топ_меню
     
  3. cleric-88

    cleric-88 Активный пользователь

    С нами с:
    12 июл 2010
    Сообщения:
    40
    Симпатии:
    0
    всего 5 пунктов меню, сделать $top_menu['page'] автоматическое увеличение как id у меня ума не хватило, так что я взял и прописал ручками 1, 2, 3, 4, 5 . Цикл while присваивает каждому пункту меню свой $top_menu['page'] вот и все...
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Разумно предположить, что если if ($id==$top_menu['page']) {$class = " class='focus'";} не срабатывает, то это потому, что условие не выполняется =) вы сами-то можете это проверить?

    var_dump($top_menu) покажите
     
  5. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    if ($id==$top_menu['id'])
    может так?
     
  6. cleric-88

    cleric-88 Активный пользователь

    С нами с:
    12 июл 2010
    Сообщения:
    40
    Симпатии:
    0
    всем спасибо, нашел проблему, переменная создавалась пустой до того как подгружалась меню, в следствии этого условие не выполнялось.