1

我正在尝试在页面上创建一些“动态”链接。基本上我想删除我所在页面的链接。(例如,如果我在主页上,我不希望显示主页链接,但如果我在 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($page_title)如果您实际上是为每个页面创建一个单独的列表(似乎暗示),那么简单地将该页面的链接列表作为 HTML 包含在该页面上会更有效。

于 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 

存在于除首页和联系我们之外的所有地方。所以他们不需要重复或包含在他们自己的 if

于 2012-08-02T22:25:01.140 回答
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- 我只是在每个页面中放置一个变量,例如,它与and数组$nav_id中的键匹配。$nav_items$nav_sets

在这里,您拥有每个导航项的一份数据副本,它可能出现在任意数量的页面上,以及一个用于为所有项生成 HTML 输出的模板。这消除了有问题的重复。这个例子包括明确的项目集,以防您需要那么多控制。如果您只需要在每个页面上显示除与当前页面对应的项目之外的所有项目,那么您可以循环$nav_items并排除当前页面。

我还消除了使用字符串连接来构建输出的可怕用途。

于 2012-08-03T01:45:08.590 回答
0

您不必,也可能永远必须像这样直接回显 HTML。由于我认为这是一个视图文件,因此我将导航放入其自己的文件中,然后执行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 回答