1

ページに「動的」リンクを作成しようとしています。基本的に、私がいるページのリンクをドロップしたいです。(たとえば、ホームページにいる場合はホーム リンクを表示したくありませんが、FAQ ページにいる場合はホーム リンクが表示され、FAQ リンクは表示されません。) このコードは希望どおりに機能します。それほど多くのコードを複製しないより良い方法が必要だと思いますが、私の限られたプログラミング経験ではそれを見ることができます.

<div class= "links">
<?php
    switch ($page_title) {
            case 'Home':
            echo '<p class= "who">'.
                    '<a href="whois.php" tabindex="1"><img src=     "images/WhoIs.png" alt= "Who is BeeCharmer" /></a>'.
                 '</p>';
            echo '<p class= "contact">'.
                    '<a href="contact.php" tabindex="2"><img src= "images/ContactUs.png" alt= "Contact Us" /></a>'.
             '</p>';
        echo '<p class= "what">'.
                '<a href="whatwedo.php" tabindex="3"><img src= "images/WhatWeDo.png" alt= "What Does BeeCharmer Do" /></a>'.
             '</p>';
        echo '<p class ="FAQ">'.
                '<a href="faq.php" tabindex="4"><img src= "images/FAQ.png" alt= "Frequently Asked Questions" /></a>'.
             '</p>';
        echo '<p class= "pics">'.
                '<a href="gallery.php" tabindex="5"><img src= "images/gallery.png" alt= "Photo Gallery" /></a>'.
             '</p>';
        echo '<p class= "pollination">'.
                 '<a href="pollination.php" tabindex="6"><img src= "images/Pollination.png" alt= "Pollination Services" /></a>'.
             '</p>';
        echo '<p class= "pay">'.
                 '<a href="payus.php" tabindex="7"><img src= "images/PayUs.png" alt= "Pay BeeCharmer" /></a>'.
             '</p>';
        break;


    case 'Who is BeeCharmer':
        echo '<p class= "home">'.
                '<a href="index.php" tabindex="1"><img src= "images/HomePage.png"  alt= "Home Page" /></a>'.
              '</p>';
        echo '<p class= "contact">'.
                '<a href="contact.php" tabindex="2"><img src= "images/ContactUs.png" alt= "Contact Us" /></a>'.
             '</p>';
        echo '<p class= "what">'.
                '<a href="whatwedo.php" tabindex="3"><img src= "images/WhatWeDo.png" alt= "What Does BeeCharmer Do" /></a>'.
             '</p>';
        echo '<p class ="FAQ">'.
                '<a href="faq.php" tabindex="4"><img src= "images/FAQ.png" alt= "Frequently Asked Questions" /></a>'.
             '</p>';
        echo '<p class= "pics">'.
                '<a href="gallery.php" tabindex="5"><img src= "images/gallery.png" alt= "Photo Gallery" /></a>'.
             '</p>';
        echo '<p class= "pollination">'.
                 '<a href="pollination.php" tabindex="6"><img src= "images/Pollination.png" alt= "Pollination Services" /></a>'.
             '</p>';
        echo '<p class= "pay">'.
                 '<a href="payus.php" tabindex="7"><img src= "images/PayUs.png" alt= "Pay BeeCharmer" /></a>'.
             '</p>';
        break;

    case 'Contact Us':
        echo '<p class= "home">'.
                '<a href="index.php" tabindex="1"><img src= "images/HomePage.png"  alt= "Home Page" /></a>'.
              '</p>';
        echo '<p class= "who">'.
                '<a href="whois.php" tabindex="2"><img src= "images/WhoIs.png" alt= "Who is BeeCharmer" /></a>'.
             '</p>';
        echo '<p class= "what">'.
                '<a href="whatwedo.php" tabindex="3"><img src= "images/WhatWeDo.png" alt= "What Does BeeCharmer Do" /></a>'.
             '</p>';
        echo '<p class ="FAQ">'.
                '<a href="faq.php" tabindex="4"><img src= "images/FAQ.png" alt= "Frequently Asked Questions" /></a>'.
             '</p>';
        echo '<p class= "pics">'.
                '<a href="gallery.php" tabindex="5"><img src= "images/gallery.png" alt= "Photo Gallery" /></a>'.
             '</p>';
        echo '<p class= "pollination">'.
                 '<a href="pollination.php" tabindex="6"><img src= "images/Pollination.png" alt= "Pollination Services" /></a>'.
             '</p>';
        echo '<p class= "pay">'.
                 '<a href="payus.php" tabindex="7"><img src= "images/PayUs.png" alt= "Pay BeeCharmer" /></a>'.
             '</p>';
        break;

    case 'What We Do':
        echo '<p class= "home">'.
                '<a href="index.php" tabindex="1"><img src= "images/HomePage.png"  alt= "Home Page" /></a>'.
              '</p>';
        echo '<p class= "who">'.
                '<a href="whois.php" tabindex="2"><img src= "images/WhoIs.png" alt= "Who is BeeCharmer" /></a>'.
             '</p>';
        echo '<p class= "contact">'.
                '<a href="contact.php" tabindex="3"><img src= "images/ContactUs.png" alt= "Contact Us" /></a>'.
             '</p>';
        echo '<p class ="FAQ">'.
                '<a href="faq.php" tabindex="4"><img src= "images/FAQ.png" alt= "Frequently Asked Questions" /></a>'.
             '</p>';
        echo '<p class= "pics">'.
                '<a href="gallery.php" tabindex="5"><img src= "images/gallery.png" alt= "Photo Gallery" /></a>'.
             '</p>';
        echo '<p class= "pollination">'.
                 '<a href="pollination.php" tabindex="6"><img src= "images/Pollination.png" alt= "Pollination Services" /></a>'.
             '</p>';
        echo '<p class= "pay">'.
                 '<a href="payus.php" tabindex="7"><img src= "images/PayUs.png" alt= "Pay BeeCharmer" /></a>'.
             '</p>';
        break;

    case 'FAQ':
        echo '<p class= "home">'.
                '<a href="index.php" tabindex="1"><img src= "images/HomePage.png"  alt= "Home Page" /></a>'.
              '</p>';
        echo '<p class= "who">'.
                '<a href="whois.php" tabindex="2"><img src= "images/WhoIs.png" alt= "Who is BeeCharmer" /></a>'.
             '</p>';
        echo '<p class= "contact">'.
                '<a href="contact.php" tabindex="3"><img src= "images/ContactUs.png" alt= "Contact Us" /></a>'.
             '</p>';
        echo '<p class= "what">'.
                '<a href="whatwedo.php" tabindex="4"><img src= "images/WhatWeDo.png" alt= "What Does BeeCharmer Do" /></a>'.
             '</p>';
        echo '<p class= "pics">'.
                '<a href="gallery.php" tabindex="5"><img src= "images/gallery.png" alt= "Photo Gallery" /></a>'.
             '</p>';
        echo '<p class= "pollination">'.
                 '<a href="pollination.php" tabindex="6"><img src= "images/Pollination.png" alt= "Pollination Services" /></a>'.
             '</p>';
        echo '<p class= "pay">'.
                 '<a href="payus.php" tabindex="7"><img src= "images/PayUs.png" alt= "Pay BeeCharmer" /></a>'.
             '</p>';
        break;

    case 'Photo Gallery':
        echo '<p class= "home">'.
                '<a href="index.php" tabindex="1"><img src= "images/HomePage.png"  alt= "Home Page" /></a>'.
              '</p>';
        echo '<p class= "who">'.
                '<a href="whois.php" tabindex="2"><img src= "images/WhoIs.png" alt= "Who is BeeCharmer" /></a>'.
             '</p>';
        echo '<p class= "contact">'.
                '<a href="contact.php" tabindex="3"><img src= "images/ContactUs.png" alt= "Contact Us" /></a>'.
             '</p>';
        echo '<p class= "what">'.
                '<a href="whatwedo.php" tabindex="4"><img src= "images/WhatWeDo.png" alt= "What Does BeeCharmer Do" /></a>'.
             '</p>';
        echo '<p class ="FAQ">'.
                '<a href="faq.php" tabindex="5"><img src= "images/FAQ.png" alt= "Frequently Asked Questions" /></a>'.
             '</p>';
        echo '<p class= "pollination">'.
                 '<a href="pollination.php" tabindex="6"><img src= "images/Pollination.png" alt= "Pollination Services" /></a>'.
             '</p>';
        echo '<p class= "pay">'.
                 '<a href="payus.php" tabindex="7"><img src= "images/PayUs.png" alt= "Pay BeeCharmer" /></a>'.
             '</p>';
        break;

    case 'Pollination Services':
        echo '<p class= "home">'.
                '<a href="index.php" tabindex="1"><img src= "images/HomePage.png"  alt= "Home Page" /></a>'.
              '</p>';
        echo '<p class= "who">'.
                '<a href="whois.php" tabindex="2"><img src= "images/WhoIs.png" alt= "Who is BeeCharmer" /></a>'.
             '</p>';
        echo '<p class= "contact">'.
                '<a href="contact.php" tabindex="3"><img src= "images/ContactUs.png" alt= "Contact Us" /></a>'.
             '</p>';
        echo '<p class= "what">'.
                '<a href="whatwedo.php" tabindex="4"><img src= "images/WhatWeDo.png" alt= "What Does BeeCharmer Do" /></a>'.
             '</p>';
        echo '<p class ="FAQ">'.
                '<a href="faq.php" tabindex="5"><img src= "images/FAQ.png" alt= "Frequently Asked Questions" /></a>'.
             '</p>';
        echo '<p class= "pics">'.
                '<a href="gallery.php" tabindex="6"><img src= "images/gallery.png" alt= "Photo Gallery" /></a>'.
             '</p>';
        echo '<p class= "pay">'.
                 '<a href="payus.php" tabindex="7"><img src= "images/PayUs.png" alt= "Pay BeeCharmer" /></a>'.
             '</p>';
        break;

    case 'Pay Us':
        echo '<p class= "home">'.
                '<a href="index.php" tabindex="1"><img src= "images/HomePage.png"  alt= "Home Page" /></a>'.
              '</p>';
        echo '<p class= "who">'.
                '<a href="whois.php" tabindex="2"><img src= "images/WhoIs.png" alt= "Who is BeeCharmer" /></a>'.
             '</p>';
        echo '<p class= "contact">'.
                '<a href="contact.php" tabindex="3"><img src= "images/ContactUs.png" alt= "Contact Us" /></a>'.
             '</p>';
        echo '<p class= "what">'.
                '<a href="whatwedo.php" tabindex="4"><img src= "images/WhatWeDo.png" alt= "What Does BeeCharmer Do" /></a>'.
             '</p>';
        echo '<p class ="FAQ">'.
                '<a href="faq.php" tabindex="5"><img src= "images/FAQ.png" alt= "Frequently Asked Questions" /></a>'.
             '</p>';
        echo '<p class= "pics">'.
                '<a href="gallery.php" tabindex="6"><img src= "images/gallery.png" alt= "Photo Gallery" /></a>'.
             '</p>';
        echo '<p class= "pollination">'.
                 '<a href="pollination.php" tabindex="7"><img src= "images/Pollination.png" alt= "Pollination Services" /></a>'.
             '</p>';
        break;
}

?>

スタイルを設定する CSS は次のとおりです。

div.links { width: 40%;
                    position: absolute;
                    top: 280px;
                    left: 2%;  }
        div.links p img { border: none; 
                          position: relative;
                          top: -29px;
                          left: 5px; }
        div.links p { background-image: url("../images/yellowSlidingDoorleft.png"),
                                        url("../images/yellowSlidingDoorRight.png"),
                                        url("../images/yellowSlidingDoorMiddle.png");
                      background-position: top left, top right, top center;
                      background-repeat: no-repeat, no-repeat, repeat; 
                      height: 38px;
                      width: 520px;
                      border: none;
                      overflow: hidden; }
        /*div.links p.home { position: relative;
                top: 0px;
                left: 0px; }
        div.links p.who { position: relative;
                top: 50px;
                left: 0px; }
        div.links p.contact { position: relative;
                top: 100px;
                left: 0px; }
        div.links p.what { position: relative;
                top: 150px;
                left: 0px; }
        div.links p.FAQ { position: relative;
                top: 200px;
                left: 0px; }
        div.links p.pics { position: relative;
                top: 250px;
                left: 0px; }
        div.links p.pollination { position: relative;
                top: 300px;
                left: 0px; }
        div.links p.pay { position: relative;
                top: 350px;
                left: 0px; }*/
        div.links p:hover img { position: relative;
                top: 5px;
                left: 5px; }
        div.links p:hover { background-image: url("../images/blackSlidingDoorleft.png"),
                                              url("../images/blackSlidingDoorRight.png"),
                                              url("../images/blackSlidingDoorMiddle.png");
                            background-position: top left, top right, top center;
                            background-repeat: no-repeat, no-repeat, repeat; }

皆さんが与えることができるどんな助けも本当に感謝しています

4

5 に答える 5

3

あなたが望むのは次のようなものだと思います:

<div class= "links">
<?php
    if ( $page_title != 'home') {
       echo '<p class= "home">'.
            '<a href="index.php" tabindex="1"><img src= "images/HomePage.png"  alt= "Home Page" /></a>'.
            '</p>';
    }
    if ( $page_title != 'Who is BeeCharmer') {
       echo '<p class= "who">'.
            '<a href="whois.php" tabindex="2"><img src=     "images/WhoIs.png" alt= "Who is BeeCharmer" /></a>'.
            '</p>';
    }

//and so on...
于 2012-08-02T22:21:27.317 に答える
1

現在のソリューションは動的ではないことに気づき、正しい方向に進んでいます。switch@Torstenが提起したように、実際に必要なのが配列にアクセスする動的コードである場合、多くの経験の浅いプログラマーは、この種の状況でステートメントを使用することを間違えているようです。ifまた、PeterVRの回答のように繰り返しステートメントを使用したり、DaiYoukaiのように繰り返し関数を呼び出したりする必要はありません。繰り返しを配列に入れると、プログラムでアクセスして操作できる柔軟で動的な構造が得られます。

次のようなものを試してください(必要なキーと値のペアを配列に追加します)。

$nav_items = array(

  'home' => array(

    'class' => 'home',

    'href' => "index.php",

    'src' => "HomePage"

    'label' => "Home Page"

  ),
  // home


  'whois' => array(

    'class' => 'who',

    'href' => "...",

    'src' => "..."

    'label' => "..."

  ),
  // whois

  ...

);
// $nav_items


$nav_sets = array(

  'home' => array(

    'whois',

    'contact',

    'whatwedo',

    'faq',

    'gallery',

    'pollination',

    'payus'

  ),


  'whois' => array(

    'home',

    'contact',

    'whatwedo',

    'faq',

    'pics',

    'pollination'

  ),

  ...

);
// $nav_sets


foreach ( $nav_sets[ $page_title ] as $nav_id ) {

  $nav_item = $nav_items[ $nav_id ];

  echo <<<DOCHERE

<p class="{$nav_item[ 'class' ]}">
<a href="{$nav_item[ 'href' ]}" tabindex="1"><img src="images/{$nav_item[ 'src' ]}.png" alt= "{$nav_item[ 'label' ]}" /></a>
</p>

DOCHERE;

}
// foreach

これは、の使用法と完全には一致しません。各ページに、および配列のキーと一致する$page_titleなどの変数を配置するだけです。$nav_id$nav_items$nav_sets

ここには、ナビゲーションアイテムごとに1つのデータのコピーがあり、これは任意の数のページに表示される可能性があり、すべてのアイテムのHTML出力を生成するための1つのテンプレートがあります。これにより、問題のある重複が排除されます。この例には、それだけの制御が必要な場合に備えて、明示的なアイテムのセットが含まれています。現在のページに対応するアイテムを除いて、各ページにすべてのアイテムを表示する必要がある場合は、ループし$nav_itemsて現在のページを除外することができます。

また、出力を構築するための文字列連結の恐ろしい使用を排除しました。

于 2012-08-03T01:45:08.590 に答える
1

とにかくページごとに個別のリストを文字通り作成する場合は、そのページのリンクのリストをHTMLとしてそのページに含める方がはるかに効率的です(switch($page_title)暗示されているようです)。

于 2012-08-02T22:17:05.710 に答える
1

関数を使用して冗長な HTML コードを削除するだけです。(この場合、すべてのリンクがまったく同じようにフォーマットされているため機能します。class、href、tabindex、imgsrc、img alt などの特定の要素が異なるだけです)

function displayLinks ($pClass, $aHref, $tabIndex, $imgSRC, $alt) {
echo '<p class="' . $pClass . '"><a href="' . $aHref . '.php" tabindex="' . $tabIndex . '"><img src="' . $imgSRC . '" alt= "' . $alt . '" /></a>'</p>';
}

そして、次のように呼び出されます

displayLinks('who','whois',1,'images/WhoIs.png','Who is BeeCharmer');
displayLinks('contact','contact',2,'images/ContactUs.png','Who is ContactUs');

等々

ただし、全体のリンクのほとんどは同じであるため、さらに一歩進んで、さまざまなリンクの条件のみを保持します。

what, faq, pics, pollination, pay 

Home と Contact us を除くすべてに存在します。したがって、次の場合、それらを繰り返したり、単独で囲んだりする必要はありません。

于 2012-08-02T22:25:01.140 に答える
0

そのような HTML を直接エコーする必要はありません。これはビューファイルだと思うので、navを独自のファイルに入れて、require('nav_links.php');現在のリンクがある場所を次のnav_links.phpような内容で実行します

nav_links.php

<div class= "links">
<?php if($page_title != 'home'): ?>
<p class= "home">.
    <a href="index.php" tabindex="1"><img src= "images/HomePage.png"  alt= "Home Page" /></a>.
</p>
<?php endif; ?>
<?php if($page_title != 'Who is BeeCharmer'): ?>
 <p class= "who">
    <a href="whois.php" tabindex="2"><img src=     "images/WhoIs.png" alt= "Who is BeeCharmer" /></a>
 </p>
<?php endif; ?>
<?php if($page_title != 'Contact Us'): ?>
 <p class= "contact">
        <a href="contact.php" tabindex="3"><img src= "images/ContactUs.png" alt= "Contact Us" /></a>
 </p>
<?php endif; ?>
<?php if($page_title !=  'What We Do'): ?>
<p class= "what">
    <a href="whatwedo.php" tabindex="4"><img src= "images/WhatWeDo.png" alt= "What Does BeeCharmer Do" /></a>
</p>
<?php endif; ?>
<?php if($page_title != 'FAQ'): ?>
 <p class ="FAQ">
    <a href="faq.php" tabindex="5"><img src= "images/FAQ.png" alt= "Frequently Asked Questions" /></a>
 </p>
<?php endif; ?>
<?php if($page_title != 'Photo Gallery'): ?>
 <p class= "pics">
    <a href="gallery.php" tabindex="6"><img src= "images/gallery.png" alt= "Photo Gallery" /></a>
 </p>
<?php endif; ?>
<?php if($page_title != 'Pollination Services'): ?>
 <p class= "pollination">
     <a href="pollination.php" tabindex="7"><img src= "images/Pollination.png" alt= "Pollination Services" /></a>
 </p>
<?php endif; ?>
<?php if($page_title != 'Pay Us'): ?>
 <p class= "pay">.
     <a href="payus.php" tabindex="8"><img src= "images/PayUs.png" alt= "Pay BeeCharmer" /></a>
 </p>
<?php endif; ?>

于 2012-08-02T22:26:11.787 に答える