Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Констукция навигации ..?type=2


Автор: Enya 11.9.2006, 10:38
Частенько приходиться использовать вот такую вот констукцию для организации навигации. Использую для того что бы не распихивать всё по разным файлам. Обычно в $type == 0 например общая информация, а уже если хотя там какой-нибудь подпунктик то просто делаю ссылку на .$_SERVER['PHP_SELF'].'?type=1 вот и у меня вот такой вопрос: когда я вот это использую выскакивает вот такая ошибка
Цитата

Notice: Undefined index: type in /home/ng/public_html/konstru.php on line 3
Скажите, где я не прав и приемлима ли эта констукция? 
Код

<?

$type = (int)$_GET['type'];

if ($type == 0)
    {
        echo 'Если переменная type = 0';
        echo '<li><a href="'.$_SERVER['PHP_SELF'].'?type=1">Перейти к пункту 1</a>';
        echo '<li><a href="'.$_SERVER['PHP_SELF'].'?type=1">Перейти к пункту 2</a>';

    }elseif ($type == 1){
        
        echo 'Если переменная type = 1';
        echo '<li><a href="'.$_SERVER['PHP_SELF'].'?type=1">Перейти к пункту 2</a>';
        echo '<li><a href="'.$_SERVER['PHP_SELF'].'?type=0"><<< ВЕРНУТЬСЯ </a>';
        
    }elseif ($type == 2){
    
        echo 'Если переменная type = 2';
        echo '<li><a href="'.$_SERVER['PHP_SELF'].'?type=1">Перейти к пункту 1</a>';
        echo '<li><a href="'.$_SERVER['PHP_SELF'].'?type=0"><<< ВЕРНУТЬСЯ </a>';
        
    }
?>
Спасибо.

Автор: PARROT 11.9.2006, 11:18
Код

<li><a href="<?=$_SERVER['PHP_SELF'];?>?type=1">Перейти к пункту 1</a>

Автор: -=Ustas=- 11.9.2006, 11:23
Лучше так делай:
Код

<?

$type = (isset($_GET['type'])) ? intval($_GET['type']) : 0;

switch($type) {
    case (0):
        echo 'Если переменная type = 0';
        echo '<li><a href="'.$_SERVER['PHP_SELF'].'?type=1">Перейти к пункту 1</a>';
        echo '<li><a href="'.$_SERVER['PHP_SELF'].'?type=1">Перейти к пункту 2</a>';
        break;
    case (1):
        echo 'Если переменная type = 1';
        echo '<li><a href="'.$_SERVER['PHP_SELF'].'?type=1">Перейти к пункту 2</a>';
        echo '<li><a href="'.$_SERVER['PHP_SELF'].'?type=0"><<< ВЕРНУТЬСЯ </a>';
        break;
    case (2):
        echo 'Если переменная type = 2';
        echo '<li><a href="'.$_SERVER['PHP_SELF'].'?type=1">Перейти к пункту 1</a>';
        echo '<li><a href="'.$_SERVER['PHP_SELF'].'?type=0"><<< ВЕРНУТЬСЯ </a>';
        break;
}

?>


Автор: Enya 11.9.2006, 11:46
PARROT, сорри, но можно ли комментарий, а то я что-то не поняла, что конкретно вы имеете в виду? smile

Добавлено @ 11:47 
-=Ustas=-, нет, когда много пунктов, то конечно switch, только у меня оформление были кривоватое.
А вот можно поподробнее о 
Цитата

Notice: Undefined index: type in /home/ng/public_html/konstru.php on line 3

Автор: -=Ustas=- 11.9.2006, 11:52
Цитата(Enya @  11.9.2006,  11:46 Найти цитируемый пост)
А вот можно поподробнее о 

Я же уже показал!
Код

$type = (isset($_GET['type'])) ? intval($_GET['type']) : 0;


Автор: Enya 11.9.2006, 12:01
-=Ustas=-, спасибо.

Автор: PARROT 11.9.2006, 12:09
Цитата(Enya @  11.9.2006,  12:46 Найти цитируемый пост)
комментарий

Лучше выносить html за скобки рнр, а рнр пользоваться в html е <?=$kod;?>. 
Код

 case (0):
?>
       Если переменная type = 0
        <li><a href="<?=$_SERVER['PHP_SELF'];?>?type=1">Перейти к пункту 1</a>
        <li><a href="<?=$_SERVER['PHP_SELF'];?>?type=1">Перейти к пункту 2</a>
<?
        break;



Автор: BuShaRt 12.9.2006, 10:33
PARROT, 
Лучше выносить HTML за приделы PHP - скрипта  smile 
Твой пример превращает код в непонятную кашу =) Очень не читабельный код становиться...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)